0
<?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';

但我似乎对一切都是真实的。你能帮忙吗?

4

6 回答 6

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';
}
于 2013-05-28T12:14:46.723 回答
1

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

$systemDate = date('Ymd');

希望这可以帮助。

于 2013-05-28T11:58:29.850 回答
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';
}

演示。

于 2013-05-28T11:54:44.673 回答
0

您可以使用日期进行比较,但它应该是 Ymd 格式:

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

if ( $systemDate >= $targetDate ) {

}
于 2013-05-28T12:15:54.407 回答
0

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

于 2013-05-28T11:55:00.763 回答
0

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

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

于 2013-05-28T11:56:56.613 回答