2011-08-30 100 views
48

我用date('w', timestamp)date('w', timestamp)知道一天,date('n', timestamp)幾個月,等從PHP的日期時間獲取年/月/日?

現在我使用的日期時間,我想知道什麼是等同的功能得到了一天,一個月,等離日期時間。

PS:我知道我可以在SQL查詢中使用UNIX_TIMESTAMP(),但我更喜歡避免在我的代碼中使用時間戳。

+1

你說你正在使用PHP的DateTime類? datetime結果上的strtotime()應該給你一個使用date()的時間戳。 –

+0

這些天StackOverflow上最重要的問題上upvotes的數量是驚人的。 – j4k3

回答

68

使用DateTimeDateTime::format()

$datetime = new DateTime($dateTimeString); 
echo $datetime->format('w'); 
+5

只是PHP中的另一個錯誤設計!爲什麼沒有函數getDay(),getMonth(),getYear()等等。?或者返回像getdate()這樣的數組的函數呢?我不得不使用這些不甚直觀的神祕角色,這真是一種恥辱。 (w天,邏輯在哪裏?)PHP是錯誤設計的完整。使用PHP真的很難看。 – Elmue

+4

@Elmue有很多事情要歸咎於PHP,你可以繼續這樣做。或者你可以接受,這是從C. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf(搜索'strftime')1:1。你想知道,爲什麼「w」是指工作日?奇怪。在最後(90%),您通常不希望只有月份或日期,而是需要格式化的,區域設置相關的日期字符串。無論如何,你將以'format'結尾。 – KingCrunch

19

退房手動:http://www.php.net/manual/en/datetime.format.php

<?php 
$date = new DateTime('2000-01-01'); 
echo $date->format('Y-m-d H:i:s'); 
?> 

將輸出:2000-01-01 00:00:00

+0

我設置了一個名爲TIMESTAMPFORMAT的常量等於'Y-m-d H:i:s'。與DateTime一起使用非常方便 –

相關問題