Chronos 的 PHP 间隔计算问题



任何帮助都会很棒,因为我无法弄清楚。

目前我有一个日期时间对象(例如。'2017-01-05 23:22:27')和用户选择的重复间隔(例如,在星期一(1)和星期五(5)之间每2天一次)我可以从日期时间获取一周中的当前日期

$dayOfWeek = date("w", time($dateObject->timestamp));

但是我不知道检查它是否在工作日内,如果它在工作日之外,如何计算它再次在间隔内的额外天数并将其添加到日期。

例如,如果星期三是 4 日,则在运行完此操作后,它需要在 6 日返回日期时间,再次运行此时间后,它将需要返回第 9 天,因为这是工作日间隔内的第二天。

我正在使用CakePHP 3和Chronos,如果这有任何帮助的话。

您可以使用

date('l',...)代替date("w", time($dateObject->timestamp))表示一周中缩短的日期(即星期一,星期二等),也可以使用date('d',...)作为全名(即星期一,星期二等)。

如果要为每一天分配数值,请使用数组来存储每个数值:

$days = array(0 => 'Sunday', 1 => 'Monday', 2 => 'Tuesday', 3 => 'Wednesday', 4 => 'Thursday', 5 => 'Friday', 6 => 'Saturday');

如果您决定在上面的 date() 函数中使用短名称,只需将 $days 数组中的一周中的一整天替换为三个字母的名称即可。

由于您在一周中的几天使用数字映射,因此您可以在条件 ( if/else ) 语句中使用 0-6 来确定它是否在间隔内。

以下是有关date()函数以及字符格式的 PHP.net 文档:PHP.net date() 函数

最新更新