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

12
задан random 25 October 2011 в 04:28
поделиться

6 ответов

Попробуйте следующее:

return strtotime('last monday', strtotime('next sunday'));
12
ответ дан 2 December 2019 в 02:49
поделиться
echo date('Y-m-d', strtotime('previous monday'));

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

if (date('w') == 1)
{
    // today is monday
}
else
{
    // find last monday
}
7
ответ дан 2 December 2019 в 02:49
поделиться

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

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

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

2
ответ дан 2 December 2019 в 02:49
поделиться

Моя попытка:

<?php
$weekday = date("w") - 1;
if ($weekday < 0)
{
    $weekday += 7;
}
echo "Monday this week : ", date("Y-m-d",time() - $weekday * 86400) , "\n";
?>
0
ответ дан 2 December 2019 в 02:49
поделиться
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 среда и так далее. Попробуйте.

10
ответ дан 2 December 2019 в 02:49
поделиться

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

Edit: explanation

  • 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

5
ответ дан 2 December 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: