PHP IF语句中的格式化日期

时间:2016-03-31 03:10:30

标签: php

我在PHP中使用了一系列if / else if语句。在这些陈述中,我正在检查一个条件,看它是否是特定日期,如下所示:

    $timezone       = date_default_timezone_set('America/Chicago');
    $TheDate        = date("F j, Y, g:i a");
    if ($TheDate >= "March 30, 2016, 9:00 pm" && $TheDate <= "March 30, 2016, 9:59 pm") {
echo "this"
}

else if ($TheDate >= "April 1, 2016, 10:00 am" && $TheDate <= "April 1, 2016, 4:00 pm") {
echo "that"
}

我不知道发生了什么事,但是如果我这样做的话,我不能延长当前时间以外的日期,我的其他声明就是回音“”。

例如,如果我写一个声明 如果日期> = 2016年3月30日,上午10:00且小于或等于2016年3月30日中午12点,这不起作用,我想要显示的内容不会显示。

但是,如果我写的是&gt; = 2016年3月30日,上午10:00和小于或等于2016年3月30日,上午10:55,那确实有效。

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找的是strtotime

<?php    
date_default_timezone_set('America/Chicago');

$TheDate = strtotime('March 30, 2016, 9:30 pm');

//$TheDate = strtotime(date('F j, Y, g:i a'));
//$TheDate = time(); // This is much better for getting the current unix timestamp.

if($TheDate >= strtotime('March 30, 2016, 9:00 pm') && $TheDate <= strtotime('March 30, 2016, 9:59 pm')) {
    echo 'this';
}
elseif($TheDate >= strtotime('April 1, 2016, 10:00 am') && $TheDate <= strtotime('April 1, 2016, 4:00 pm')) {
    echo 'that';
}
else {
    echo 'neither';
}