2011-12-07 98 views
1

我有下面的PHP代碼:PHP的strtotime返回1

$te='2011-12-07-14-19-30'; 
$tt=strtotime($te); 
echo $te; 
echo $tt; 

這不是輸出爲預期在時間的ingteger ...

任何想法?

+0

可能它不理解格式。 –

+0

[Works for me](http://ideone.com/dw6gw)在PHP 5.2.11中。 – JRL

回答

3
 
$te='2011-12-07 14:19:30'; //y-m-d h:i:s format 
$tt=strtotime($te); 
echo $te; 
+0

試過這個,工作,謝謝。對於閱讀本文的任何人,其他答覆都會提供更多信息的鏈接 – David19801

0

那不是strtotime會接受的valid compound date/time format。在將其傳遞給函數之前,對其進行適當修改。

一個可能的和最小的編輯將刪除所有破折號並在日期和時間部分之間添加「T」。

0

因爲這不是一個valid time string,它僅僅是由破折號分隔的數字。 它可能會返回-1而不是1,因爲-1是默認的失敗響應。

0

嘗試「2011-12-07 14:19:30」或「2011-12-07T14:19:30Z」(符合iso8601)。

0
$te='2011-12-07-14-19-30'; 
$arr = explode('-',$te); 
$timestamp = mktime($arr[3], $arr[4], $arr[5], $arr[1], $arr[2], $arr[0]); 

,我認爲它應該工作:)

+0

爲什麼downvote?如果他無法更改時間/日期的格式,則會生成正確的時間戳。 – OptimusCrime

0

它返回FALSE,當你經過的日期格式無效。
docs

成功則返回時間戳,否則返回FALSE。在PHP 5.1.0之前,此函數在失敗時將返回-1。