由於某種原因,這是給我一個奇怪的時間:Unix的時間戳格式
date_default_timezone_set('Europe/London');
$todaysdate = date('d-m-y h:i:s a', time());
$todaysdatestring = strtotime($todaysdate);
這是我回國時在2018年
例如1515889804
它似乎將時間設置爲月/年/日。
我不能理解...
任何想法?
由於某種原因,這是給我一個奇怪的時間:Unix的時間戳格式
date_default_timezone_set('Europe/London');
$todaysdate = date('d-m-y h:i:s a', time());
$todaysdatestring = strtotime($todaysdate);
這是我回國時在2018年
例如1515889804
它似乎將時間設置爲月/年/日。
我不能理解...
任何想法?
我不知道你想在這裏做什麼,但如果你將d-m-y h:i:s a
更改爲d-m-Y h:i:s a
,它會給你正確的日期。
date_default_timezone_set('Europe/London');
$todaysdate = date('d-m-Y h:i:s a', time());
$todaysdatestring = strtotime($todaysdate);
,但如果你想獲得當前的時間戳,你爲什麼不乾脆用time()
。
date_default_timezone_set('Europe/London');
$todaysdate = date('m/d/y h:i:s a', time());
$todaysdatestring = strtotime($todaysdate);
var_dump(time(), $todaysdate, strtotime($todaysdate));
我將「d-m-y」改爲「m/d/y」。
我不知道時間和日期格式的確切術語和ISO標準,但在Eclipse中 它說strtotime想要一個「英文Dateformat」。
PHP版本28年3月5日
當strtotime()
函數解析您的日期時間字符串18-01-14 01:00:44 am
,它假定這個數字是18年,01月和14天(格式Y-m-d
);這就是爲什麼你得到2018年unix時間戳。請參閱here功能strtotime()
明白什麼日期格式。
要檢查strtotime()
函數如何解析日期時間,請參見date_parse()
函數,如:print_r(date_parse($todaysdate));
。 demo
如果你想未知格式轉換爲時間戳使用DateTime::createFromFormat()
:
$dt = DateTime::createFromFormat('d-m-y h:i:s a', '18-01-14 01:00:44 am');
echo $dt->getTimestamp(); # or $dt->format('U');
PHP手冊總結是有點誤導。如果分隔符是斜槓,則strtotime採用美式格式,如果分隔符是破折號或點,則strtotime採用歐洲格式。英文使用斜槓和歐洲格式。 – dsas