簡體   English   中英

PHP strtotime返回false

[英]PHP strtotime returning false

以下是數據庫的輸出,我正在嘗試獲取開始日期和數據庫中的日期之間的月數。 以下是我的輸出

string(10) "12/12/2010" Date : 12/12/2010 - 1292112000
string(10) "19/04/2000" Date : 19/04/2000 -
string(10) "08/08/2007" Date : 08/08/2007 - 1186527600
string(10) "20/06/2011" Date : 20/06/2011 - 

如您所見,第二個和第四個Unix時間戳是空的。 我不知道是什么原因引起的。 下面是我用來回顯您上面看到的代碼。

echo "Date : " . $row['startDate'] . " - " . strtotime($row['startDate']) . var_dump($row['startDate']). "<br />";

手冊

通過查看各個組成部分之間的分隔符,可以消除m / d / y或dmy格式的日期的歧義:如果分隔符為斜杠(/),則假定為美國m / d / y; 相反,如果分隔符是破折號(-)或點(。),則采用歐洲dmy格式。

為避免潛在的歧義,最好盡可能使用ISO 8601(YYYY-MM-DD)日期或DateTime :: createFromFormat()。

解決了這個問題,我在5.3 PHP中使用了一些新的DateTime函數

$originalDate = str_replace("/", "-", $row['startDate']);
$date1 = new DateTime($originalDate);
$date2 = new DateTime('now');

$interval = date_diff($date1, $date2);

echo "Months" . $interval->format('%m') . ($interval->format('%y') * 12) . "<br />";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM