我正在研究客户调度程序,我的雇主希望它每年自动重新安排客户.他希望他们每年保持同一周的同一天.
例如,客户定于2014年5月23日.这是5月的第四个周五.2014年5月23日过后,应预订2015年5月4日的预约(在本案例中为第22次).
我已经尝试了各种各样的方法来使这个工作(例如使用DateTime提前一年,并找到一周中任何一天的"之前").但是,我尝试过的每一款车型在短短几年后都会出现故障.他们最终会像......这个月的第二个星期五.
有没有人有办法让这个工作?我的雇主非常具体地希望调度程序以这种方式工作.xx如果有人知道如何,我真的很感激帮助.
感谢您阅读本文!
正如已经指出的那样,例如,可能没有6月的第5个星期五,所以需要一些标准的方法来决定明年哪一周与当前星期相同.
实际上,ISO 8601中已有一个用于周编号的标准,PHP的DateTime类内置了处理它们的功能.
我的建议是ISO 8601 week number在下一年的同一天安排下一次会议.以下功能将为您完成: -
/**
* @param \DateTime $date Date of the original meeting
* @return \DateTime Date of the next meeting
*/
function getSameDayNextYear(\DateTime $date = null)
{
if(!$date){
$date = new \DateTime();
}
return (new \DateTime())->setISODate((int)$date->format('o') + 1, (int)$date->format('W'), (int)$date->format('N'));
}
Run Code Online (Sandbox Code Playgroud)
我相信你会同意这是最简单的方法,它应该会在接下来的100年或更长时间内看到你的权利:)
| 归档时间: |
|
| 查看次数: |
1316 次 |
| 最近记录: |