Intereting Posts
AFNetworking 2.0 POST, ошибка Cocoa 3840 (текст JSON не начинался с массива …) PHP: проверьте, пустые ли какие-либо опубликованные vars – форма: все поля обязательны для заполнения Получить все экземпляры класса в PHP Действительно ли SplFixedArray работает лучше, чем массивы? Как вы разбиваете субзапросы на CakePHP 3? Заявление PHP Должно возвращать несколько объектов, но возвращает только один Измените размеры столбцов mySql для размещения зашифрованных данных – сколько? обнаруживать метки URL site.com/page.php#anycontent Обновление таблицы sql с использованием UPDATE mysql и php синтаксиса Справочные объекты PHP в петле цикла Получать все вставленные идентификаторы при вставке нескольких строк с использованием одного запроса Каким будет правильная служба для использования в клиентской библиотеке PHP для Google, чтобы получить базовую информацию, такую ​​как имя и адрес электронной почты? Получить список общих дисков с помощью PHP в Windows? Фильтровать 2D-массив по значению конкретного ключа Получение профиля пользователя в мессенджере (windows live) connect sdk в php

Получить дату понедельника на текущей неделе в PHP 4

Мне нужно найти дату понедельника на текущей неделе. Как я могу это сделать в PHP 4?

Самый простой способ:

$time = strtotime('monday this week'); 

Попробуй это:

 return strtotime('last monday', strtotime('next sunday')); 
 echo date('Ym-d',time()+( 1 - date('w'))*24*3600); 

На следующей неделе:

 echo date('Ym-d',time()+( 8 - date('w'))*24*3600); 

1 в понедельник, 2 вторник, 3 среды и так далее. Попробуй.

 echo date('Ym-d', strtotime('previous monday')); 

Но только одно примечание. Вы хотите убедиться, что сегодня не понедельник, иначе вы получите дату предыдущего понедельника, точно так же, как говорится. Вы можете сделать это следующим образом

 if (date('w') == 1) { // today is monday } else { // find last monday } 

$thisMonday = date('l, F d, Y', time() - ((date('w')-1) * 86400) );

Изменить: объяснение

  • date('w') – это числовое представление дня недели (0 = воскресенье, 6 = суббота)
  • есть 86400 секунд в день
  • мы берем текущее время и вычитаем (один день * (день недели – 1))

Итак, если в настоящее время среда (день 3), понедельник – два дня назад:

time() - (86400 * (3 - 1)) = time() - 86400 * 2

Если в понедельник (1 день), мы получаем:

time() - (86400 * (1 - 1)) = time() - 86400 * 0 = time()

Если это воскресенье (день 0), понедельник – завтра.

time() - (86400 * (0 - 1)) = time() - -86400 = time() + 86400

Попробуй это.

 echo date('Ym-d', strtotime('last monday', strtotime('next monday'))); 

Он вернет текущую дату, если сегодня понедельник, и в противном случае вернется в последний понедельник. По крайней мере, это делается на моем PHP 5.2.4 под en_US locale.

Попробуй это

 $day_of_week = date("N") - 1; $monday_time = strtotime("-$day_of_week days"); 

Моя попытка:

 <?php $weekday = date("w") - 1; if ($weekday < 0) { $weekday += 7; } echo "Monday this week : ", date("Ymd",time() - $weekday * 86400) , "\n"; ?>