使用本机函数在 php 中的周数和年份的第一天之前获得 1 或 2 天的最有效方法是什么

what is the most efficient way to get 1 or 2 day before the first day of week number and year in php with native functions

我需要使用php到return给定周数和年份之前的周六或周日,例如:

date('Y-m-d',strtotime("2011W011")) #returns '2011-01-03', but I need it to return '2011-01-01 or 2011-01-02 instead
 date('Y-m-d',strtotime("2011W014")) #returns '2011-01-06'

类似于:

date('Y-m-d',strtotime("2011W01-2")) #to return '2011-01-01'
date('Y-m-d',strtotime("2012W01-2")) #to return '2011-12-31'    

我希望有一些简单高效的东西。请不要建议 DateTime class...因为我的 php 没有它,需要一个简单的解决方案来完成一个简单的任务。

试试这样的函数

星期六:

function LastSaturday($time_string){
     return strtotime('last saturday', strtotime($time_string));
}

或周日:

function LastSunday($time_string){
     return strtotime('last sunday', strtotime($time_string));
}

基本上您只需使用 strtotime('last sunday', strtotime('2011W01')); 并将 sunday 替换为您想要的日期。

More Info

同时查看

编辑

要获得更好更高效的功能,请使用

function LastDay($day, $time_string){
     $day = strtolower($day);
     return strtotime("last $day", strtotime($time_string));
}

用法:

LastDay('sunday', '2011W01');

strtotime('2012W01 - 2 days') 星期六和 strtotime('2012W01 - 1 day') 周日,因为周电话总是 return 你周一。