获取特定工作日的日期


Get dates for specific weekdays

我需要在 22:59 获取本周周三和周六 22:59 的时间戳,然后将时间戳转换为人类可读的日期。

我尝试了以下方法:

date_default_timezone_set('America/New_York');
$wednesdayLimit = strtotime('wednesday this week');
$saturdayLimit = strtotime('saturday this week');
$wednesdayLimit->setTime(22,59,0);
$saturdayLimit->setTime(22,59,0);
echo date("Y-m-d H:i:d", $wednesdayLimit);
echo date("Y-m-d H:i:d", $saturdayLimit);

但是我收到以下错误:

未捕获的错误:在整数上调用成员函数 setTime()

一行:

print date('Y-m-d H:i:s', strtotime('wednesday this week 22:59:00'));¸

收益 率: 2016-01-27 22:59:00

怎么样

$wednesday = strtotime('wednesday this week');
$wednesdayStart = $wednesday - ($wednesday % 60*60*24);
$wednesdayEnd = $wednesdayStart + (60 * 60 * 24) - 1;

您可以使用DateTime并执行类似操作。

$date = new 'DateTime();
$date->setISODate((int)$date->format('o'), (int)$date->format('W'), 3);
$date->setTime(22, 59, 0);
echo $date->format('D d-m-Y H:i:s');

演示。

或者,如果你喜欢一个衬里。

$date = (new 'DateTime())->modify('wednesday this week')->setTime(22, 59, 0);

演示