PHP:如何在星期日和星期六输入日期?

时间:2009-09-28 04:57:20

标签: php algorithm datetime

如何确定特定日期的星期日和星期六?

例如:

  

输入:2009年9月28日星期一

     输出应该是:

     

2009年9月27日星期日中午12:00 - 2009年10月3日星期六,下午11:59

我正在考虑使用datestrtotimemktimetime php函数。

如果你有一个可用的功能,那么对我来说也没关系。

提前致谢:)

干杯, 标记

9 个答案:

答案 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)

看看strtotime

strtotime('next sunday', strtotime($your_date_string));

答案 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