Jad*_*ore 137
这是我正在使用的......
$day = date('w');
$week_start = date('m-d-Y', strtotime('-'.$day.' days'));
$week_end = date('m-d-Y', strtotime('+'.(6-$day).' days'));
Run Code Online (Sandbox Code Playgroud)
$ day包含0到6之间的数字,表示星期几(星期日= 0,星期一= 1等).
$ week_start包含当前星期日的日期为mm-dd-yyyy.
$ week_end包含当前星期六的日期为mm-dd-yyyy.
小智 63
strtotime('this week', time());
Run Code Online (Sandbox Code Playgroud)
替换时间().当前一天是星期日/星期一,下周日/最后一个星期一方法将无效.
Raj*_*lam 58
使用方法很简单strtotime
函数:
echo date("Y-m-d", strtotime('monday this week')), "\n";
echo date("Y-m-d", strtotime('sunday this week')), "\n";
Run Code Online (Sandbox Code Playgroud)
它与PHP版本有所不同:
2015-03-16
2015-03-22
Run Code Online (Sandbox Code Playgroud)
2015-03-23
2015-03-22
Run Code Online (Sandbox Code Playgroud)
2015-03-30
2015-03-29
Run Code Online (Sandbox Code Playgroud)
本周的相关描述有自己的背景.下面显示的输出,本周周一,当它是一个星期一或星期天星期天:
$date = '2015-03-16'; // monday
echo date("Y-m-d", strtotime('monday this week', strtotime($date))), "\n";
echo date("Y-m-d", strtotime('sunday this week', strtotime($date))), "\n";
$date = '2015-03-22'; // sunday
echo date("Y-m-d", strtotime('monday this week', strtotime($date))), "\n";
echo date("Y-m-d", strtotime('sunday this week', strtotime($date))), "\n";
Run Code Online (Sandbox Code Playgroud)
Againt它与PHP版本有所不同:
2015-03-16
2015-03-22
2015-03-23
2015-03-29
Run Code Online (Sandbox Code Playgroud)
2015-03-16
2015-03-22
2015-03-23
2015-03-22
Run Code Online (Sandbox Code Playgroud)
2015-03-23
2015-03-22
2015-03-23
2015-03-29
Run Code Online (Sandbox Code Playgroud)
2015-03-23
2015-03-29
2015-03-30
2015-03-29
Run Code Online (Sandbox Code Playgroud)
job*_*ot5 42
把事情简单化 :
<?php
$dateTime = new \DateTime('2012-05-14');
$monday = clone $dateTime->modify(('Sunday' == $dateTime->format('l')) ? 'Monday last week' : 'Monday this week');
$sunday = clone $dateTime->modify('Sunday this week');
?>
Run Code Online (Sandbox Code Playgroud)
资料来源:PHP手册
小智 25
$givenday = date("w", mktime(0, 0, 0, MM, dd, yyyy));
Run Code Online (Sandbox Code Playgroud)
这将为您提供给定日期本周的某一天,其中0
= Sunday和6
= Saturday.从那里你可以简单地向后计算你想要的那一天.
Agm*_*her 18
对于它的价值,这里是确定一致参考框架时strtotime的不稳定行为的细分:
http://gamereplays.org/reference/strtotime.php
基本上只有这些字符串能够可靠地给你相同的日期,无论你打电话给他们当天的哪一天:
strtotime("next monday");
strtotime("this sunday");
strtotime("last sunday");
Run Code Online (Sandbox Code Playgroud)
vas*_*ite 17
这个问题需要一个很好的DateTime答案: -
function firstDayOfWeek($date)
{
$day = DateTime::createFromFormat('m-d-Y', $date);
$day->setISODate((int)$day->format('o'), (int)$day->format('W'), 1);
return $day->format('m-d-Y');
}
var_dump(firstDayOfWeek('06-13-2013'));
Run Code Online (Sandbox Code Playgroud)
输出: -
string '06-10-2013' (length=10)
Run Code Online (Sandbox Code Playgroud)
这将涉及年份边界和闰年.
小智 11
以下代码应适用于任何自定义日期,只使用所需的日期格式.
$custom_date = strtotime( date('d-m-Y', strtotime('31-07-2012')) );
$week_start = date('d-m-Y', strtotime('this week last monday', $custom_date));
$week_end = date('d-m-Y', strtotime('this week next sunday', $custom_date));
echo '<br>Start: '. $week_start;
echo '<br>End: '. $week_end;
Run Code Online (Sandbox Code Playgroud)
我用PHP 5.2.17测试了代码结果:
Start: 30-07-2012
End: 05-08-2012
Run Code Online (Sandbox Code Playgroud)
sha*_*nth 10
假设星期一是一周的第一天,这有效:
echo date("M-d-y", strtotime('last monday', strtotime('next week', time())));
Run Code Online (Sandbox Code Playgroud)
这个怎么样?
$first_day_of_week = date('m-d-Y', strtotime('Last Monday', time()));
$last_day_of_week = date('m-d-Y', strtotime('Next Sunday', time()));
Run Code Online (Sandbox Code Playgroud)
小智 6
在这里,我将周日视为本周末的第一天和周六.
$m = strtotime('06-08-2012');
$today = date('l', $m);
$custom_date = strtotime( date('d-m-Y', $m) );
if ($today == 'Sunday') {
$week_start = date("d-m-Y", $m);
} else {
$week_start = date('d-m-Y', strtotime('this week last sunday', $custom_date));
}
if ($today == 'Saturday') {
$week_end = date("d-m-Y", $m);
} else {
$week_end = date('d-m-Y', strtotime('this week next saturday', $custom_date));
}
echo '<br>Start: '. $week_start;
echo '<br>End: '. $week_end;
Run Code Online (Sandbox Code Playgroud)
输出:
开始于:05-08-2012
结束:11-08-2012
这是我用来从任何日期获得一周的第一天和最后一天.在这种情况下,星期一是一周的第一天......
$date = date('Y-m-d') // you can put any date you want
$nbDay = date('N', strtotime($date));
$monday = new DateTime($date);
$sunday = new DateTime($date);
$monday->modify('-'.($nbDay-1).' days');
$sunday->modify('+'.(7-$nbDay).' days');
Run Code Online (Sandbox Code Playgroud)
小智 5
这个怎么样?
$day_of_week = date('N', strtotime($string_date));
$week_first_day = date('Y-m-d', strtotime($string_date . " - " . ($day_of_week - 1) . " days"));
$week_last_day = date('Y-m-d', strtotime($string_date . " + " . (7 - $day_of_week) . " days"));
Run Code Online (Sandbox Code Playgroud)
尝试这个:
function week_start_date($wk_num, $yr, $first = 1, $format = 'F d, Y')
{
$wk_ts = strtotime('+' . $wk_num . ' weeks', strtotime($yr . '0101'));
$mon_ts = strtotime('-' . date('w', $wk_ts) + $first . ' days', $wk_ts);
return date($format, $mon_ts);
}
$sStartDate = week_start_date($week_number, $year);
$sEndDate = date('F d, Y', strtotime('+6 days', strtotime($sStartDate)));
Run Code Online (Sandbox Code Playgroud)
(来自此论坛帖子)