Мне нужно найти дату понедельника на текущей неделе. Как я могу это сделать в PHP 4?Получить дату понедельника на текущей неделе в PHP 4
ответ
echo date('Y-m-d', strtotime('previous monday'));
Только одно примечание. Вы хотите убедиться, что сегодня не сегодня, иначе вы получите дату предыдущий понедельник, точно так же, как говорится. Вы можете сделать это следующим образом
if (date('w') == 1)
{
// today is monday
}
else
{
// find last monday
}
Это датируется неделю назад, если сегодня понедельник. – nickf
@nickf: см. Обновленный ответ. Я вспомнил, что после того, как я разместил .. :) –
Осторожно, с формулировкой, которую вы используете с strtotime, «предыдущий понедельник» вы получите неделю назад в понедельник, когда вам действительно захочется текущий день. IIRC, на этой неделе в php означает понедельник до воскресенья, но если вы должны применить свой ответ на поиск даты вторника, например, это даст вам неправильный результат как в понедельник, так и во вторник. –
echo date('Y-m-d',time()+(1 - date('w'))*24*3600);
На следующей неделе:
echo date('Y-m-d',time()+(8 - date('w'))*24*3600);
1 в понедельник, 2 вторник, 3 среду и так далее. Попробуй.
Моя попытка:
<?php
$weekday = date("w") - 1;
if ($weekday < 0)
{
$weekday += 7;
}
echo "Monday this week : ", date("Y-m-d",time() - $weekday * 86400) , "\n";
?>
Попробуйте это:
return strtotime('last monday', strtotime('next sunday'));
А что, если сегодня воскресенье? :) –
@ mr.b - тогда он должен действовать по желанию (при условии, что воскресенье - начало недели) – nickf
Это мое любимое решение для получения понедельника в 00:00:00. Другой (менее элегантный) способ получить это: 'mktime (0,0,0, date ('m'), date ('j') - date ('N') + 1, date ('Y'))' – neokio
Попробуйте это.
echo date('Y-m-d', strtotime('last monday', strtotime('next monday')));
Он будет возвращать текущую дату, если сегодня понедельник, и в противном случае вернется в последний понедельник. По крайней мере, это делается на моем PHP 5.2.4 под en_US locale.
$thisMonday = date('l, F d, Y', time() - ((date('w')-1) * 86400));
Edit: объяснение
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
Easisest путь:
$time = strtotime('monday this week');
Hah! Когда они [говорят] (http://php.net/manual/en/function.strtotime.php) «Разберитесь с каким-либо английским текстовым описанием даты и времени в временную метку Unix», они действительно это означают, не так ли? +1 для наиболее читаемого решения. –
+1! Действительно простое решение. Рад, что я искал это, потому что я уже строил сложную конструкцию, чтобы определить дату понедельника. Типично: 'strotime' должен быть' strtotime'. – Alec
сегодня - четверг 2012/05/17 (Y-m-d), когда я делаю эхо (дата («Y-m-d», strtotime («понедельник на этой неделе»))); он идет на 2012/05/21, который наступает на следующую неделю – r4ccoon
Попробуйте
$day_of_week = date("N") - 1;
$monday_time = strtotime("-$day_of_week days");
- 1. Попытка получить дату понедельника на текущей неделе
- 2. как получить дату понедельника текущей недели
- 3. Перенаправление на текущей неделе
- 4. Найти конкретную дату на текущей неделе
- 5. Вычислить дату для понедельника текущей недели
- 6. Получите дату понедельника и воскресенья на этой неделе
- 7. Получите дату понедельника понедельника
- 8. Django/Python - Проверьте дату в текущей неделе
- 9. PHP получить дату этого месяца понедельника
- 10. Как я могу получить дату на прошлой неделе, начиная с понедельника до воскресенья в javascript
- 11. PHP: как получить день на прошлой неделе?
- 12. Получить дату первого понедельника недели?
- 13. Рассчитать следующую дату на неделе
- 14. Swift 3 - Получить дату понедельника
- 15. Java - получите понедельнику дату недели, укажите дату на этой неделе
- 16. Получить дату для понедельника и пятницы на текущую неделю (PHP)
- 17. PHP - функция Date - нахождение на прошлой неделе
- 18. Как я могу получить дату на этой неделе с понедельника по воскресенье AngularJS
- 19. Как я могу получить запись на прошлой неделе, текущей неделе и в прошлом месяце от mysql
- 20. рассчитать дату следующего понедельника на данную дату
- 21. Выделите на текущей неделе в строке
- 22. Найти дату понедельника с Python
- 23. Как получить дату понедельника следующей недели в Typoscript?
- 24. Как получить дату на этой неделе со дня
- 25. Подсчет записей на текущей неделе в symfony
- 26. Как получить дату начала текущей недели в SQL Server 2008?
- 27. Как получить дату первого понедельника текущего года (php)?
- 28. Получите понедельнику понедельника в Постгресе?
- 29. функция PHP DateTime возвращает дату в будущем на этой неделе
- 30. PHP проверить, соответствуют ли даты на текущей неделе
Я действительно чувствую, вам приходится работать в PHP4, поскольку функциональность дата PHP5 является * Waaaay * лучше.Кроме того, PHP4 уже давно анонсирован End-Of-Life, поэтому он не получит никаких патчей и, вероятно, небезопасен - в любом случае он не должен использоваться в производстве. – Spudley