如何获得相对于一年中的一周的前一年的日期

时间:2012-11-12 01:49:54

标签: php datetime

我怎样才能获得相同ISO-8601周数的同一天,但是在前一年使用php?

我熟悉从时间戳中提取这种软信息。对于我来说,是否有内置的方式从一周的一周,一年中的一周和一年到一年的时间戳?

4 个答案:

答案 0 :(得分: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 :(得分: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

答案 2 :(得分: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作为参考。

答案 3 :(得分:0)

我认为你正在寻找mktime。看看http://php.net/manual/en/function.mktime.php