使用本机函数在 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
替换为您想要的日期。
同时查看
编辑
要获得更好更高效的功能,请使用
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 你周一。
我需要使用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
替换为您想要的日期。
同时查看
编辑
要获得更好更高效的功能,请使用
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 你周一。