我以为这是轻而易举的事,但我发现这比我想的要难。
每天,我想检查一下今天是否在圣诞节(12月25日)和主显节(1月6日)之间,即Christmastide。
我遇到的问题与年份有关,因为年份在该期间的中间发生了变化。
我的基本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年。WHat是最简单的方法。我尝试使用strtotime来说“去年圣诞节”,但似乎没有用...
谢谢
function isChristmastide() {
$month = date('n');
$day = date('j');
return ($month == 12 && $day >= 25) || ($month == 1 && $day <= 6);
}
echo isChristmastide() ? 'Ho ho ho' : 'No no no';
其他选择:
$today = date('nj');
return 1225 <= $today || $today <= 16;
虽然我发现可读性值得怀疑。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句