Intereting Posts
Получить твиттер видео mp4 url Как получить все переменные, доступные в представлении в PHP? 502 Ошибки шлюза при высокой нагрузке (nginx / php-fpm) отправка почты с использованием php и груши на окнах почему xpath удаляет html специальные символы? Скрытие скрытых входов в виде строки (с использованием PHP Simple HTML DOM Parser) пурпурные цены, включая налог Локализованные (короткие) месячные имена с использованием IntlDateFormatter в PHP? PHP array_filter с аргументом для обратного вызова Неустранимая ошибка: исключить исключение «Parse \ ParseException» с сообщением «Ошибка SSL-сертификата: невозможно получить сертификат локального эмитента» Как использовать глобальную переменную в PHP Codeigniter Запрос mySQL, возвращающий идентификатор ресурса # 5 Отображение временных меток MySQL по местному времени сохранение параметров URL во время разбивки на страницы Ограничить доступ к файлам авторизованным пользователям php

PHP: Как получить воскресенье и субботу с учетом ввода даты?

Как я могу получить воскресенье и субботу недели с определенной датой?

Например:

вход: понедельник, 28 сентября 2009 г.

выход должен быть:

Воскресенье, 27 сентября 2009 г. 12:00 – Суббота, 3 октября 2009 г. 23: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"; ?> 

взглянуть на strtotime

т.е.

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

echo date («Ymd H: i: s», strtotime («последнее воскресенье», время ()));

echo date («Ymd H: i: s», strtotime («следующая суббота», время ()));

проблема с «правильным» ответом заключается в том, что, если поставляемая дата – воскресенье? Тогда это даст вам предыдущее воскресенье вместо текущего воскресенья. Тот же вопрос с субботой.

 $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; 

выход: воскресенье, 27 сентября 2009 г. 12:00 – суббота, 03 октября 2009 г. 23:59

Это то, что вы ищете. Это то, что я использую.

 $beginningOfWeek = date('Ymd H:i:s', strtotime('last Sunday')); $endOfWeek = date('Ymd H:i:s', strtotime('+6 day', strtotime('last Sunday')) ); 

В этом случае вы можете найти мой помощник Time Time Helper, он может закончиться в 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("dmY"); $dw = date( "w"); $dw = 7-$dw; echo "\nNext Sunday Is" .date('dm-Y', strtotime("+$dw days"));