可能重复:
在 PHP 中获取一周的第一天?
当给出日期时,我应该得到该周星期一的日期。
当给出 2012-08-08 时,它应该返回 2012-08-06。
function last_monday($date) {
if (!is_numeric($date))
$date = strtotime($date);
if (date('w', $date) == 1)
return $date;
else
return strtotime(
'last monday',
$date
);
}
echo date('m/d/y', last_monday('8/14/2012')); // 8/13/2012 (tuesday gives us the previous monday)
echo date('m/d/y', last_monday('8/13/2012')); // 8/13/2012 (monday throws back that day)
echo date('m/d/y', last_monday('8/12/2012')); // 8/06/2012 (sunday goes to previous week)
试试看:http ://codepad.org/rDAI4Scr
...或具有星期天返回第二天(星期一)而不是前一周的变体,只需添加一行:
elseif (date('w', $date) == 0)
return strtotime(
'next monday',
$date
);
试试看:http ://codepad.org/S2NhrU2Z
你可以传递一个时间戳或一个字符串,你会得到一个时间戳
文档
您可以使用该函数轻松制作时间戳strtotime
- 它接受“上周一”之类的短语以及辅助参数,这是您可以从使用的日期轻松制作的时间戳mktime
(请注意,特定日期的输入是Hour,Minute,Second,Month,Day,Year
)。
<?php
$monday=strtotime("monday this week", mktime(0,0,0, 8, 8, 2012));
echo date("Y-m-d",$monday);
// Output: 2012-08-06
?>
编辑将“上周一”更改strtotime
为“本周周一”,现在可以完美运行。