我使用下面的内容来创建一个我可以使用的日期。我希望日期提前到下周二,并保留最初存储在$start中的时间。目前,它只是跳到下一个星期二的日期,但它并没有节省时间。时间被重设到午夜。
$day="Tuesday";
$start=DateTime::createFromFormat('Y-m-d H:i:s', $start);
$firstOccurrence= $start->getTimestamp();
$nextOccurence=$start->modify("next $day");
发布于 2014-03-20 19:33:13
您需要从原始对象中传递时间。此外,我建议使用克隆,以避免副作用:-
$start = '2014-03-20 18:23:15';
$day="Tuesday";
$start=DateTime::createFromFormat('Y-m-d H:i:s', $start);
$nextOccurence = clone $start;
$nextOccurence->modify("next $day")->setTime((int)$start->format('H'), (int)$start->format('i'), (int)$start->format('s'));
var_dump($nextOccurence);
看到它起作用。
https://stackoverflow.com/questions/22542373
复制相似问题