2012-11-12 75 views
3

我怎樣才能獲得相同的ISO-8601週數,但在前一年使用PHP?如何獲得前一年的日期相對於一年的每週

我很熟悉從時間戳中提取這些軟信息。是否有一種內置的方式讓我從一週的每週,一年的一週到一年的時間到時間戳?

+0

你的意思是,如果今天是'2012-11-12 10:00:00週一周45'你想要'2011-11-07 10:00:00週一周45' – sephoy08

回答

3

看看您可以同時使用datestrtotime的組合,像這樣:

// get the timestamp 
$ts = strtotime('today'); 

// get year, week number and day of week 
list($year, $week, $dow) = explode('-', date('Y-W-N', $ts)); 

// use the "YYYY-WXX-ZZ" format  
$format = ($year - 1) . "-W$week-$dow"; 
echo date('Y-m-d', strtotime($format)), PHP_EOL; 
1

你可以用strtotime做到這一點:

$now = time(); // Mon, 12 Nov 2012 
$targetYear = date('Y', $now) - 1; // 2011 
$targetWeek = date('\\WW-N', $now); // W46-1 
$lastYear = strtotime($targetYear . $targetWeek); // Mon, 14 Nov 2011 
1

試試這個:

$date = "2012-11-13"; 
echo getLastYearWeek($date); 
function getLastYearWeek($date) 
{ 
    $last_year = date("Y-m-d W N", strtotime("-52 Weeks ".$date)); 

    return $last_year; 
} 

或者只是,

$last_year = date("Y-m-d W N", strtotime("-52 Weeks ".$date)); 

使用this作爲參考。

相關問題