从周末筛选工作日 php
Filter Working days from weekend php
如果不是工作日,我想显示错误(您可以在 html 部分输入日期)
setlocale(LC_TIME, "de_DE.utf8");
$dateString = strftime('%A' , $dateTimestamp1);
substr($dateString, 0, 2);
if ($dateString == 'So' || $dateString == 'Sa') {
throw new FormInputException('date', 'Invalid Date');
}
你没有说清楚你的问题是什么,因为你用的方法基本没问题。但是,有几点需要牢记:
更简单的方法
PHP 已经为您提供了检查周末的方法(取决于您的 PHP 版本)。看看这个已经有答案的问题:Weekend in PHP
使用子字符串
这其实是不必要的。 $dateString = strftime('%a' , $dateTimestamp1);
已经给你缩写的字符串(小 %a)。
使用LC_TIME
一个 isuse 可能是你的时间实际上没有翻译成德语。这取决于您使用的语言包(de-DE.utf8)是否安装在您的服务器上。实际上使用 PHP 的周末检查的主要方法你甚至不需要关心这样的事情(见 1.)。
您可以调用 date('w', $date)
,其中 w
会将结果设置为星期几的数字表示形式,其中 0 表示星期日,1 表示星期一 ... 6 表示星期六等。因此,使用一个简单的自定义函数,您可以确定日期是否在工作日:
function dateIsWeekday($date) {
$day = date('w', $date);
return $day > 0 && $day < 6;
}
您可以拨打:
if (!dateIsWeekday($dateTimestamp1)) {
throw new FormInputException('date', 'Date is not a weekday');
}
如果其他人遇到问题,我会解决它-这是代码
$dateTimestamp1 = strtotime($this->date);
//setlocale(LC_TIME, "de_DE.utf8");
$day = date('N', $dateTimestamp1);
if ($day == 6 || $day == 7) {
throw new FormInputException('date', 'Invalid Date');
}
如果不是工作日,我想显示错误(您可以在 html 部分输入日期)
setlocale(LC_TIME, "de_DE.utf8");
$dateString = strftime('%A' , $dateTimestamp1);
substr($dateString, 0, 2);
if ($dateString == 'So' || $dateString == 'Sa') {
throw new FormInputException('date', 'Invalid Date');
}
你没有说清楚你的问题是什么,因为你用的方法基本没问题。但是,有几点需要牢记:
更简单的方法 PHP 已经为您提供了检查周末的方法(取决于您的 PHP 版本)。看看这个已经有答案的问题:Weekend in PHP
使用子字符串 这其实是不必要的。
$dateString = strftime('%a' , $dateTimestamp1);
已经给你缩写的字符串(小 %a)。使用LC_TIME 一个 isuse 可能是你的时间实际上没有翻译成德语。这取决于您使用的语言包(de-DE.utf8)是否安装在您的服务器上。实际上使用 PHP 的周末检查的主要方法你甚至不需要关心这样的事情(见 1.)。
您可以调用 date('w', $date)
,其中 w
会将结果设置为星期几的数字表示形式,其中 0 表示星期日,1 表示星期一 ... 6 表示星期六等。因此,使用一个简单的自定义函数,您可以确定日期是否在工作日:
function dateIsWeekday($date) {
$day = date('w', $date);
return $day > 0 && $day < 6;
}
您可以拨打:
if (!dateIsWeekday($dateTimestamp1)) {
throw new FormInputException('date', 'Date is not a weekday');
}
如果其他人遇到问题,我会解决它-这是代码
$dateTimestamp1 = strtotime($this->date);
//setlocale(LC_TIME, "de_DE.utf8");
$day = date('N', $dateTimestamp1);
if ($day == 6 || $day == 7) {
throw new FormInputException('date', 'Invalid Date');
}