【发布时间】:2009-09-28 04:57:19
【问题描述】:
在给定特定日期的情况下,如何获取一周中的星期日和星期六?
例如:
输入:2009 年 9 月 28 日,星期一
输出应该是:
2009 年 9 月 27 日星期日上午 12:00 - 2009 年 10 月 3 日星期六晚上 11:59
我正在考虑使用date、strtotime、mktime 和time php 函数。
如果你有可用的功能,那我也可以。
提前致谢:)
干杯, 标记
【问题讨论】:
在给定特定日期的情况下,如何获取一周中的星期日和星期六?
例如:
输入:2009 年 9 月 28 日,星期一
输出应该是:
2009 年 9 月 27 日星期日上午 12:00 - 2009 年 10 月 3 日星期六晚上 11:59
我正在考虑使用date、strtotime、mktime 和time php 函数。
如果你有可用的功能,那我也可以。
提前致谢:)
干杯, 标记
【问题讨论】:
你使用strtotime()和date():
<?php
$s = 'Monday, September 28, 2009';
$time = strtotime($s);
$start = strtotime('last sunday, 12pm', $time);
$end = strtotime('next saturday, 11:59am', $time);
$format = 'l, F j, Y g:i A';
$start_day = date($format, $start);
$end_day = date($format, $end);
header('Content-Type: text/plain');
echo "Input: $s\nOutput: $start_day - $end_day";
?>
输出:
Input: Monday, September 28, 2009
Output: Sunday, September 27, 2009 12:00 PM - Saturday, October 3, 2009 11:59 AM
【讨论】:
<?php
date_default_timezone_set('Europe/London');
$datetime = new DateTime("2009-09-23 12:00:00");
// Saturday
$datetime->setISODate(2009, $datetime->format("W"), 6);
print "Saturday:" . $datetime->format(DATE_ATOM) . "\n";
// Sunday
$datetime->setISODate(2009, $datetime->format("W"), 0);
print "Sunday: " . $datetime->format(DATE_ATOM) . "\n";
?>
【讨论】:
【讨论】:
echo date("Y-m-d H:i:s", strtotime("last Sunday", time()));
echo date("Y-m-d H:i:s", strtotime("下一个星期六", time()));
【讨论】:
“正确”答案的问题是,如果提供的日期是星期日怎么办?然后它将为您提供前一个星期日,而不是当前星期日。周六也有同样的问题。
$s = 'Monday, September 28, 2009';
$time = strtotime($s);
if(date('D', $time) == "Sun"){
$start = strtotime(' 12pm', $time);
}
else {
$start = strtotime('last sunday, 12pm', $time);
}
if(date('D', $time) == "Sat"){
$start = strtotime(' 12pm', $time);
}
else {
$start = strtotime('next saturday, 12pm', $time);
}
$format = 'l, F j, Y g:i A';
$start_day = date($format, $start);
$end_day = date($format, $end);
header('Content-Type: text/plain');
echo "Input: $s\nOutput: $start_day - $end_day";
【讨论】:
strtotime
$input = strtotime("Monday, September 28, 2009");
$nextSunday = strtotime("next Sunday",$input);
【讨论】:
<?php
$date = strtotime('Monday, September 28, 2009 - 1 day');
$initialString = date('l, F d, Y g:i A', $date);
$end = date('l, F d, Y g:i A', strtotime( 'next saturday 11:59 pm', $date));
echo $initialString . ' - ' . $end;
输出: 2009 年 9 月 27 日星期日 12:00 AM - 2009 年 10 月 3 日星期六 11:59 PM
【讨论】:
这就是您要找的。这是我用的。
$beginningOfWeek = date('Y-m-d H:i:s', strtotime('last Sunday'));
$endOfWeek = date('Y-m-d H:i:s', strtotime('+6 day', strtotime('last Sunday')) );
【讨论】:
在这种情况下,您可能会发现我的日期时间助手非常方便,它可以在 3 行内完成
http://normandqq.github.io/Date-Time-Helper/
$date = '2013-08-11';
$monday = Model_DTHpr::getMondayByDate($date);
$sunday = Model_DTHpr::adjustDays("add",$monday,6);
输出:
2013-08-05 //Monday
2013-08-11 //Sunday
【讨论】:
获取周日 PHP 代码:
echo "Today Is : " . date("d-m-Y");
$dw = date( "w");
$dw = 7-$dw;
echo "\nNext Sunday Is" .date('d-m-Y', strtotime("+$dw days"));
【讨论】: