我不知道该如何解决这个问题.我正在使用PHP构建日历,并且需要用户能够添加遵循以下规则的重复事件:
本月的最后[DOW](所以最后一周[周一/周二/周三/周])
我已经存储了规则本身,我只是不确定如何最好地推断PHP中本月的最后一个周一/周二/周三?我觉得我让它变得比它需要的更复杂.
假设你有变量$month=4,$dow=3以及$year=2011我如何能最好地做到这一点?
zne*_*eak 26
对于与日期相关的所有内容,您可以用正确的英语表达,但很难用数字表达,strtotime是您最好的朋友.
echo strtotime("last Monday of June 2011");
Run Code Online (Sandbox Code Playgroud)
这将返回一个时间戳,您可以将其用作第二个参数,date以便获得正确的,人类可读的日期.由于它是用C编写的内置函数,因此这个解决方案也比用PHP编写的其他任何东西都要快得多(虽然我很确定它在现实场景中并不重要).
所以假设你有$month=4,$dow=3并且$year=2011,你需要一个数组映射$month值到他们的英文文本表示和另一个数组映射$dow值到他们的文本表示.