[英]php strtotime function
我使用 PHP 的 strtotime function 將日期從一種格式轉換為另一種格式我有以下
$date = "12-22-2011";
echo $newDateFormat = date("Y-m-d", strtotime($date) );
// Output 1970-01-01
// But when i replace "-" with "/" I get proper output
$date = "12/22/2011";
echo $newDateFormat = date("Y-m-d", strtotime($date) );
// Output 2011-12-22
為什么這樣? 還是有任何其他 function 可以接受任何內容並轉換為正確的日期格式?
從strtotime文檔:
m/d/y 或 dmy 格式的日期通過查看各個組件之間的分隔符來消除歧義:如果分隔符是斜杠 (/),則假定為美式 m/d/y; 而如果分隔符是破折號 (-) 或點 (.),則假定為歐洲 dmy 格式。
本質上,帶連字符的日期被假定為 dmy,而不是 mdy。
對於自定義解析,請使用DateTime::createFromFormat()
。
使用諸如dd-mm-yyyy
或mm-dd-yyyy
類的格式不是很安全: strtotime()
無法確定您使用的是哪一個(想想06-11-2011
,例如:是在六月,還是在 11 月?) 。
使用strtotime()
,您通常最好使用yyyy-mm-dd
格式。
如果要以特定的已知格式解析日期,則應使用DateTime::createFromFormat()
- 請注意,它僅適用於 PHP >= 5.3。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.