date_default_timezone_set('Europe/London');
$date = '06-17-2013';
if (strtotime("now") > strtotime("+5 days", strtotime($date))) {
echo '5 days have gone by';
} else {
echo 'not yet';
}
此函數總是返回'5天過去'。我永遠無法讓它返回'尚未' 爲什麼?從變化日期起的5天
date_default_timezone_set('Europe/London');
$date = '06-17-2013';
if (strtotime("now") > strtotime("+5 days", strtotime($date))) {
echo '5 days have gone by';
} else {
echo 'not yet';
}
此函數總是返回'5天過去'。我永遠無法讓它返回'尚未' 爲什麼?從變化日期起的5天
你需要使用什麼是$date = '17-06-2013';
(DD-MM-YYYY)
或$date = '2013-06-17';
(YYYY-MM-DD)
,而不是
$date = '06-17-2013';
嘗試通過YYYY-MM-DD
指定日期。 strtotime
似乎不支持MM-DD-YYYY
表示法。
你應該考慮使用SPL DateTime對象。
試試這個:
$date = new DateTime('2013-06-17');
$date->add(new DateInterval("P5D");
$now = new DateTime();
if($now > $date) {
echo "5 Days have passed";
}
else{
echo "not yet";
}
如果更改'06-17-2013'
這個'06/17/2013'
預期
<?php
date_default_timezone_set('Europe/London');
$date = '06/17/2013';
if (strtotime("now") > strtotime("+5 days", strtotime($date))) {
echo '5 days have gone by';
} else {
echo 'not yet';
}
?>
有使用斜槓(/)和連字符之間的差異,將工作 - 在的strtotime功能。
Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator
between the various components: if the separator is a slash (/), then the American
m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the
European d-m-y format is assumed.
也許因爲倫敦人不使用MM-DD-YYYY格式? – Kermit