基本上,我有這個要求將當前/未來的工作日轉換爲時間戳。我怎樣才能得到每週給定的一天的時間戳?
例子:
today = Thu, 24 Feb 2010
weekday = Tue
next date = Tue, 1 Mar 2010
cur stamp = 1267016400
new stamp = 1267448400
基本上,我有這個要求將當前/未來的工作日轉換爲時間戳。我怎樣才能得到每週給定的一天的時間戳?
例子:
today = Thu, 24 Feb 2010
weekday = Tue
next date = Tue, 1 Mar 2010
cur stamp = 1267016400
new stamp = 1267448400
strtotime('Tue')
將返回下週二的時間戳。
strtotime('Tue', $time)
將從給定的時間戳返回下一個星期二的時間戳。
這是我結束了代碼:
/**
* @param $weekday string The weekday in short (3 letter) format, eg: "Mon" or "Tue".
* @return integer The calculated timestamp.
*/
function next_weekday_to_stamp($weekday,$today=null){
if(!$today)$today=time();
$range = array('Mon','Tue','Wed','Thu','Fri','Sat','Sun','Mon','Tue','Wed','Thu','Fri','Sat','Sun');
$days = array_search(date('D'), $range);
$range = array_slice($range, $days);
$days = array_search($weekday, $range);
return strtotime('+'.$days.' days', $today);
}
談了工程吧!
無論如何,如果有人想在過去(上個工作日)使用它,它可以很容易地適應。
由於缺乏想法指出,'strtotime(「Tue」)'應該做你想做的 - 今天(如果它現在是星期二)或下一個星期二(如果它是一週中的其他日子) – TML 2011-02-24 09:08:32
你試過
strtotime("+7 days", strtotime("Thu, 24 Feb 2010"))
呃... ...(廢話!)不知道我怎麼錯過了! – Christian 2011-02-24 09:07:18