Chronos的PHP间隔计算问题

时间:2017-01-05 20:36:03

标签: php date php-chronos

任何帮助都会令人惊讶,因为我无法理解。

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

从日期时间获取当周的当前日期

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

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用date("w", time($dateObject->timestamp))代替date('l',...)缩短星期几(即星期一,星期二等),也可以使用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() Function