我正在尝试执行以下操作:使用会话变量$date_from
和$date_to
标记并将它们与这些日期间隔进行比较。这就是我到目前为止所做的:
这是我使用的格式,只有几天和几个月:
$date1 = new DateTime('28-04-2014');
$seasonStart = date_format($date1, 'd-m');
以今天的日期28-03-2014
为例,做同样的事情,将其存储在变量中,if循环中的条件为
if (28-03 < 28-04)
echo "it works"
然而,这不起作用。我注意到它只比较日期而不是月份
如果我改变28-03 to 01-08
它会起作用,这显然是不正确的。
答案 0 :(得分:0)
您正在比较字符串(以及第二个示例中的整数),而不是日期。这就是你看到你所看到的结果的原因。幸运的是,在PHP中比较日期很容易,因为DateTime对象是可比较的。不需要事先进行格式化。
$date1 = new DateTime('28-04-2014');
$date2 = new DateTime();
if ($date1 > $date2) {
// do something
}
答案 1 :(得分:0)
您可以随时使用strtotime
函数的unix时间。
$time1 = strtotime("28 March 2014");
$time2 = strtotime("28 February 2014");
if($time1 > $time2){ //stuff }
我不确定这是否是最成功的方式,但我可能会这样做。
答案 2 :(得分:0)
您可以使用简单的PHP类来操作日期。
便于日期比较:
$date = new simpleDate();
echo $date->now()->compare($other_date)->isBefore();
您可以查看教程页面以获取更多示例。 Click here