Intereting Posts
php Как получить размер веб-изображения в kb? Генерирование (псевдо) случайных буквенно-цифровых строк Код php pdo, чтобы добавить дату с датой Wrap DOM-элемент в другом элементе DOM в PHP .htaccess доступен только через ip Установленное значение непроверенного флажка php Предупреждение: mysql_fetch_object (): предоставленный аргумент не является допустимым ресурсом результата MySQL Является ли htmlspecialchars достаточным для предотвращения SQL-инъекции переменной, заключенной в одинарные кавычки? Получение данных JSON с помощью PHP Метод отношений должен возвращать объект типа Illuminate \ Database \ Eloquent \ Relations \ Relation из вызова модели, не видя в Laravel 4 Обнаружение типа MIME в PHP Linkedin разделяет URL-адреса / не анализирует открытый граф Как проанализировать сериализованную структуру данных PHP на Java? Сообщение о успехе, не отображающее использование jQuery ajax 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"; ?>