给出这种日期对象
date("m/d/Y", strtotime($numerical." ".$day." of ".date("F")))
例如,它可能会给出“八月的第一个星期一”的mm / dd / yyyy日,
如何确定此日期是否大于,小于或等于今天的日期?
我需要一个now()
方法,它以这种格式工作,可以在日期对象之间进行比较
我还没有尝试过date()< date(),但是。但我认为这不会起作用
任何有识之士
答案 0 :(得分:25)
我一开始误解了你的问题。您没有在比较中使用日期对象,而是使用日期的字符串表示形式(由date
创建)。
将日期的几乎任何字符串表示与当前时间进行比较很容易:
$now = time();
$date = '2015/03/12'; #could be (almost) any string date
if (strtotime($date) > $now) {
#$date occurs in the future
} else {
#$date occurs now or in the past
}
将日期字符串与当前日进行比较只是稍微复杂一些。这是一种方法:
$today_start = strtotime('today');
$today_end = strtotime('tomorrow');
$date = '2015/03/12'; #could be (almost) any string date
$date_timestamp = strtotime($date);
if ($date_timestamp >= $today_end) {
#$date occurs after today
} elseif ($date_timestamp < $today_start) {
#$date occurs before today
} else {
#$date occurs today
}
不是使用time
将当前时间缩短到第二个,而是计算当前日期的两个中午的时间戳。然后你比较那些。
有更聪明的方法可以做到这一点(例如比较日期和今天的YYYY/MM/DD
表示),但这个例子很好地构建了第一个。
答案 1 :(得分:18)
比较时间戳:
if (strtotime($numerical." ".$day." of ".date("F")) < time()) {
// older
} else {
// newer
}
这是可能的,因为strtotime()
也会返回自1.1.1970和time()
以来的秒数。在PHP中,您可以轻松地比较整数......