继续使用php中的日期比较


Stuck with date compare in 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';

但我似乎对每件事都是真实的。你能帮帮我吗?

可以使用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';
}

演示。

格式化您的日期字符串YYYYmmdd当您比较时,它将像一个增量INT。这样比较起来就容易多了。

$systemDate = date('Ymd');

为什么不创建带有日期的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';
}

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

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

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

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

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