php日期少于另一个日期

CQM*_*CQM 9 php compare date strtotime

鉴于这种日期对象 date("m/d/Y", strtotime($numerical." ".$day." of ".date("F")))

例如,它可以给出mm/dd/yyyy日,即"8月的第一个星期一"

如何确定此日期是否大于,小于或等于今天的日期?

我需要一种now()以这种格式工作的方法,并且可以在日期对象之间进行比较

我还没有尝试过date()<date().但我认为这不会起作用

任何有识之士

Apo*_*ica 27

我一开始误解了你的问题.您没有像比较说的那样在比较中使用日期对象,而是使用日期的字符串表示(由...创建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
}
Run Code Online (Sandbox Code Playgroud)

将日期字符串与当前日期进行比较只是稍微复杂一些.这是一种方法:

$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
}
Run Code Online (Sandbox Code Playgroud)

不是time用来将当前时间缩短到第二个,而是计算当前日期的两个中午的时间戳.然后你比较那些.

有更聪明的方法可以做到这一点(比如比较YYYY/MM/DD日期和今天的表示),但是这个例子很好地构建了第一个.


bwo*_*ebi 19

比较时间戳:

if (strtotime($numerical." ".$day." of ".date("F")) < time()) {
    // older
} else {
    // newer
}
Run Code Online (Sandbox Code Playgroud)

这可以strtotime()返回自1970年1月1日以来的秒数time().在PHP中,您可以轻松地比较整数...