<?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 ) {
}