坚持与PHP的日期比较

时间:2013-05-28 11:49:49

标签: php

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

$urlYear = '2013';
$currentYear = date('Y');
$systemDate = date('d-m-Y');

 if ( ($systemDate >= '01-06-'.$currentYear) || ($currentYear < $urlYear) ) {
        echo 'Here are your results <br>';
        echo 'System Date '.$systemDate.' '.$currentYear.' '.$urlYear;
    } else {
        echo 'No results for you';
    }
?>

我想要实现的目标是:

(If the current date as formatted by me is >= '01-06'-year of the current year) 
    OR 
(if the $currentYear < $urlYear)
//echo 'Here are your results';

但我似乎对所有事情都是如此。你能帮忙吗?

6 个答案:

答案 0 :(得分:1)

您可以使用strtotime

将日期转换为unix时间戳后比较日期
if ( (strtotime($systemDate) >= strtotime('01-06-'.$currentYear)) || ($currentYear < $urlYear) ) {
   echo 'Here are your results <br>';
   echo 'System Date '.$systemDate.' '.$currentYear.' '.$urlYear;
} else {
   echo 'No results for you';
}

<强> DEMO.

答案 1 :(得分:1)

比较时格式化日期字符串 YYYYmmdd ,它将像增量 INT 。有了这个,比较会更容易。

$systemDate = date('Ymd');

希望这有帮助。

答案 2 :(得分:1)

为什么不使用日期创建DateTime对象并比较这些

$UrlYear = new DateTime('2013' . '-01-01'); 
$CurrentYear = new DateTime(date('Y') . '-01-01');
$SystemDate = new DateTime();

if ( ($SystemDate >= $CurrentYear) || ($CurrentYear < $UrlYear) ) {
    echo 'Here are your results <br>';
    echo 'System Date '. $SystemDate->format('d/m/Y') .' '. $CurrentYear->format('Y') .' '. $UrlYear->format('Y');
} else {
echo 'No results for you';
}

答案 3 :(得分:0)

使用时间戳格式比较日期时间,使用mktime函数将日期时间转换为时间戳格式

答案 4 :(得分:0)

您正在以词汇方式比较字符串。这不适用于格式化的日期字符串。

将所有内容转换为unix时间戳(UTC)并比较数字或使用date_diff函数

答案 5 :(得分:0)

您可以使用日期进行比较,但它应采用Y-m-d格式:

$systemDate = date( 'Y-m-d' );
$targetDate = date( 'Y-m-d', mktime( 0, 0, 0, 6, 1 ) );

if ( $systemDate >= $targetDate ) {

}