如何确定特定日期的星期日和星期六?
例如:
输入:2009年9月28日星期一
输出应该是:2009年9月27日星期日中午12:00 - 2009年10月3日星期六,下午11:59
我正在考虑使用date
,strtotime
,mktime
和time
php函数。
如果你有一个可用的功能,那么对我来说也没关系。
提前致谢:)
干杯, 标记
答案 0 :(得分:16)
您使用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
答案 1 :(得分:9)
<?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";
?>
答案 2 :(得分:3)
答案 3 :(得分:1)
回音日期(“Y-m-d H:i:s”,strtotime(“last sunday”,time()));
回音日期(“Y-m-d H:i:s”,strtotime(“下周六”,时间()));
答案 4 :(得分:1)
“正确”答案的问题是,如果提供的日期是星期日怎么办?然后它会给你前一个星期天,而不是当前的星期天。与星期六相同的问题。
$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";
答案 5 :(得分:0)
的strtotime
$input = strtotime("Monday, September 28, 2009");
$nextSunday = strtotime("next Sunday",$input);
答案 6 :(得分:0)
<?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 - 2009年10月3日星期六,下午11:59
答案 7 :(得分:0)
这就是你要找的东西。这是我使用的。
$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')) );
答案 8 :(得分:0)
在这种情况下,您可能会发现我的日期时间助手非常方便,它可以在3行中完成
http://normandqq.github.io/Date-Time-Helper/
$date = '2013-08-11';
$monday = Model_DTHpr::getMondayByDate($date);
$sunday = Model_DTHpr::adjustDays("add",$monday,6);
Out Put:
2013-08-05 //Monday
2013-08-11 //Sunday