我使用以下代码获取工作日的Y-m-d格式:
$monday = date('Y-m-d', strtotime('Monday'));
$tuesday = date('Y-m-d', strtotime('Tuesday'));
$wednesday = date('Y-m-d', strtotime('Wednesday'));
$thursday = date('Y-m-d', strtotime('Thursday'));
$friday = date('Y-m-d', strtotime('Friday'));
今天是2012-08-01(第31周),我需要的星期一价值应该是2012-07-30。
为什么strtotime('Monday')
下周一会成功呢?
答案 0 :(得分:8)
因为date('Y-m-d')
返回今天的日期,即八月份。您正在将monday
转换为time
。现在时间用date(Y-m-d)
(2012年8月)表示。所以明显的答案是从今天开始的下一个星期一。
为了获得上周的日期,请使用
$monday=date(Y-m-d,strtotime('monday this week'))
答案 1 :(得分:1)
它总是返回第二天的类型。下周一是08-06,下周四是08-02。
<?php
function getDateOfWeekDay($day) {
$weekDays = array(
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday',
);
$dayNumber = array_search($day, $weekDays);
$currentDayNumber = date('w', strtotime('today'));
if ($dayNumber > $currentDayNumber) {
return date('Y-m-d', strtotime($day));
} else {
return date('Y-m-d', strtotime($day) - 604800);
}
}
echo getDateOfWeekDay('Monday');
?>
答案 2 :(得分:1)
对于我的应用程序,我只需要为当周的日期创建变量。
这就是我接受这段代码的原因:
$mon_value= date('Y-m-d', strtotime('Monday this week'));
$tue_value= date('Y-m-d', strtotime('Tuesday this week'));
$wed_value= date('Y-m-d', strtotime('Wednesday this week'));
$thu_value= date('Y-m-d', strtotime('Thursday this week'));
$fri_value= date('Y-m-d', strtotime('Friday this week'));