我試圖讓Unix的時間日期字符串格式應該是這樣:從一週的某一天轉換爲UNIX時間在PHP
'second sunday of march 2010'
'first sunday of november 2010'
我的印象是的strtotime可以處理這樣的字符串,但顯然不是,因爲這返回false。當給定一天的星期幾時,我該如何轉換爲unix時間,這個月中的哪一天(即第一秒,第二秒等),一個月和一年。
我試圖讓Unix的時間日期字符串格式應該是這樣:從一週的某一天轉換爲UNIX時間在PHP
'second sunday of march 2010'
'first sunday of november 2010'
我的印象是的strtotime可以處理這樣的字符串,但顯然不是,因爲這返回false。當給定一天的星期幾時,我該如何轉換爲unix時間,這個月中的哪一天(即第一秒,第二秒等),一個月和一年。
這應該可能與strtotime
。你可以嘗試使用mktime()
產生行軍第一天的時間戳,並補充說,作爲第二個參數(在字符串部分,只留下「第一個星期日」):
$timestamp = mktime (0,0,0,3,1,2010); // 1st of march
$first_sunday = strtotime("first sunday", $timestamp);
不知道該如何處理的第一天(3月1日)實際上是一個星期天。確保你檢查出來。
而且,也許這更可靠,檢查this了 - 海報說,他得到了與以下符號的好成績(引用):用的strtotime
<?php
strtotime('+0 week sun nov 2009'); // first sunday in nov 2009
strtotime('+1 week sun nov 2009'); // second sunday
strtotime('-1 week sun nov 2009'); // last sunday in oct 2009
?>
與往常一樣,不管你選擇,確保你測試不錯,尤其是邊緣情況(月的第一天是星期日,上個月的最後一天是星期日....)
你的代碼適用於PHP 5.3.0。你使用的是什麼版本的PHP?
<?php
date_default_timezone_set("Europe/Oslo");
$time_march = strtotime('second sunday of march 2010');
$time_november = strtotime('first sunday of november 2010');
echo date("Y-m-d", $time_march) . " (timestamp: $time_march)\n";
echo date("Y-m-d", $time_november) . " (timestamp: $time_november)\n";
?>
給出:
2010-03-14 (timestamp: 1268521200)
2010-11-07 (timestamp: 1289084400)
5.1.6 ....愚蠢的網絡主機 – Rob
你的第一個解決方案是聰明,但我甚至沒有嘗試它,因爲你的第二個運作良好。謝謝。 – Rob