我试着做一个简单的if echo语句。
<?php if (time("mm-dd") > strtotime("11-01") && time("mm-dd") < strtotime("02-28"))echo 'stuff' ?>基本上,如果今天是11月、12月、1月、2月,我想要回音。如果我使用time()和全年,代码可以工作,但我只想比较一下月、日。我想我有一些愚蠢的语法错误,我就是搞不懂。这个代码片段被放置在我的html的<head>中,如果这有区别的话。小小的帮助。谢谢。
这就是我最后的下场。谢谢!
<?php if ($today > '12-16' || $today < '01-08') echo 'yes' ?>用$today = date("m-d")
发布于 2016-12-17 17:14:00
date函数代替时间。&&切换到||。任何m-d日期字符串都不会大于11-01和小于02-28。date(),不如将结果赋值给一个变量?在这里,这一切都在一起:
$today = date('m-d');
if ($today >= '11-01' || $today < '03-01') { ... }发布于 2016-12-17 17:19:22
考虑只使用date检查月份:
$month = (int) date("m");
$isMonthCorrect = $month === 11 || $month === 12 || $month === 1 || $month === 2;注意(int)的重要性。整数比较比字符串比较更可靠,即使它们的行为类似。
或者,如果要在两个日期之间进行检查,为了优化性能,在将日期放入代码之前,应该将日期计算为时间戳。
例如,您可以使用一些网站来转换Unix时间戳。(这里不登广告,但您可以搜索“Unix时间戳转换器”)您也可以使用php -r获得快速输出:
php -r 'echo strtotime("2016-11-01 00:00:00");'
php -r 'echo strtotime("2017-02-01 00:00:00");'然后你可以像这样使用它们:
$minimum = 1477958400; // from first command line
$maximum = 1485907200; // from second command line
$isInPeriod = $minimum <= time() && time() <= $maximum;请记住:
time()总是返回当前Unix时间戳,即自Unix以来的秒数。使用strtotime将字符串转换为时间,并使用date()将时间戳转换为给定格式的字符串。time()获得当前Unix时间戳,或者使用date()从时间戳中获取特定数据。参考文献:
https://stackoverflow.com/questions/41200870
复制相似问题