【发布时间】:2017-05-29 08:20:51
【问题描述】:
我认为这会是一件轻而易举的事,但我发现它比我想象的要难。
每天,我都想检查今天是否在圣诞节(12 月 25 日)和主显节(1 月 6 日)之间,即圣诞节。
我遇到的问题与年份有关,因为年份在那个时期的中间发生了变化。
我的基本 if 语句是:
$this_year_today = date("d-M-Y");
$christmas = date('d-M-Y', strtotime("25 December ".$year));
$epiphany = date('d-M-Y', strtotime("6 January ".$year));
if(($this_year_today >= $christmas) && ($this_year_today < $epiphany)){
$season= "Christmastide";}
但是,如果今天是 2017 年圣诞节之后,那么顿悟日期是 2018 年,但如果今天是顿悟之前,那么圣诞节是 2016 年。稍微动脑筋。最简单的方法是什么。我尝试使用 strtotime 说“去年圣诞节”,但似乎没有用......
谢谢
【问题讨论】:
-
不使用年份怎么办?如果你不使用年份,你可以比较日期并说
christmasdate < date < epiphany。为此,我将日期格式化为M-d。这将更容易处理 -
@SacrumDeus
'12-26' < '12-31' && '12-31' < '1-6'...?这永远不会是真的…… -
您的日期应该是
1226和1231。有了这个,你可以很容易地比较它们,因为 1231 大于 1226 而0106小于1231。也许会有所帮助