2011-10-07 83 views
-3

我想將php日期轉換如09/30/2011轉換爲這種格式2011-09-30 21:35:46。php日期轉換爲有時間的日期

我看了一些手冊,但對我來說很難。

$input = "09/30/2011"; 
$output = "2011-09-30 21:35:46"; 

$output = date('Y-m-d h:m:s', strtotime($input)) 
+0

這裏有什麼不起作用? – esqew

+5

你的代碼工作正常。由於沒有在原始格式中指定時間,它會打印當前時間。你什麼時候需要? –

+0

我的格式有誤Y-m-d h:m:s應該是Y-m-d h:我:s –

回答

3

格式字符串'Y-m-d h:m:s'應在代碼中修改爲'Y-m-d H:i:s'。 在date函數中,格式char'm'是月份,而不是分鐘; 'h'是從01到12的小時,'H'是從00到23的小時。

+0

男人,我真的不相信。經過10多年的PHP,並想知道爲什麼我的腳本不工作....你救了我的一天。謝謝。 –

2

你的代碼的工作,但如果你要玩的日期時間在PHP這裏是一個小例子。

除時間戳以外的每個日期輸出都需要一個時區來獲取該時區的正確時間。

所以,如果你的PHP配置這麼想的已經設置了你,設置默認的時區由:

date_default_timezone_set('XXXX'); 

XXXX代表的值了List of supported timezones

的。如果你想使用日期作爲一個對象,你需要現在初始化:

$date = new DateTime(); 

$日期現在將有當前的時間,如果你想設定一個時間在你的榜樣「09/30/2011」你可以直接通過寫作這樣做:

$date = new DateTime('09/30/2011'); 

要格式化您可以使用此日期輸出:

echo $date->format('Y-m-d H:i:s'); 

或者,如果你想設置你的時間,以及你可以用時間用來初始化日期時間以及:

$date = new DateTime('09/30/2011 21:35:46'); 

請務必記住,格式化輸出取決於您的時區。

要了解有關DateTime的更多信息,請查看DateTime class manual