2016-06-29 37 views
0

簡而言之,我試圖在特定時間獲取特定日期(本月初)的時間戳(00:00:00)。然後我試圖把這個值變成一個用於搜索數據庫的unix時間戳。這一天工作正常,但是當我檢查時間戳時,它將自己設置爲與當前時間相對的時間。例如,現在這是上午8:55,我收到的輸出是1:56 pm(UTC)。我想要00:00 UTC。這是我正在使用的代碼。試圖獲得特定日期的小時00:00:00,而不是相對時間

$from = "$month/1/$year"; 
$to = $month+1."/1/$year"; 
$fromDate = date_create("$from"); 
$toDate = date_create("$to"); 
$fromDate->setTime(0,0,0); 
$toDate->setTime(0,0,0); 
$from = strtotime($fromDate); 
$to = strtotime($toDate); 

這裏的輸出:

從$ = 1464789100

$到= 1467381099

編輯:解決

我的表被搞砸了。我有一些亂七八糟的數據丟掉了我承認爲測試目的而造成的一切(因爲忘記了你的測試用例的存在始終是一個好主意)。感謝你的幫助。

+0

你嘗試從= 「$月/ 1/$年00:00:00」'$;'? –

+0

是的。仍是同樣的問題。我得到下午2:06(因爲時間已經過去了,時間不是靜態設置,它是根據當前時間動態設置的)。 – dmcoding

回答

1

試試這個代碼

$date = DateTime::createFromFormat('m/d/Y H:i:s', '05/02/2015 00:00:00'); 
var_dump($date->format('U')); 
/* Add 1 month to date */ 
$date->add(new DateInterval('P1M')); 
var_dump($date->format('U')); 
+0

我嘗試了你的建議,最後得到了同樣的結果。在通過strtotime()轉換爲unix時間戳之後,我仍然在該特定日期獲取動態時間,而不是靜態00:00:00,所以不幸的是,您的答案不起作用。 – dmcoding

+1

@dmcoding'$ date-> format('U');'它是以unix timesamp格式返回的日期。你不需要使用附加函數'strtotime()' – newage

+0

這確實會給出一個靜態時間。我非常感謝。接受的答案,我會用你的答案編輯我的問題。我沒有意識到使用'strtotime()'會把所有東西都搞糟。非常感謝。 – dmcoding

相關問題