Php дата неделю назад

Содержание
  1. Операции с датами и временем Unixtime в PHP
  2. Получение временных меток и дат
  3. Число дня недели
  4. Числа месяца
  5. Текущий месяц:
  6. Преведущий месяц:
  7. Следующий месяц:
  8. Число дней в текущем месяце
  9. Порядковый номер недели
  10. Число дней в текущем году
  11. Текущий квартал
  12. Арифметические операции
  13. Прибавить к дате 10 секунд
  14. Прибавить к дате 10 минут
  15. Прибавить к дате 1 час
  16. Прибавить к дате 1 день
  17. Прибавить к дате неделю
  18. Прибавить к дате месяц
  19. Прибавить к дате год
  20. Сколько прошло
  21. Сколько прошло c 8:00
  22. Сколько прошло c понедельника этой недели
  23. Сколько прошло c начала года
  24. Сколько прошло c определённой даты
  25. Сколько остается
  26. Сколько остается до 23:00
  27. Сколько остается до конца недели
  28. Сколько остается до конца месяца
  29. Сколько остается до конца года
  30. Сколько остается до определенной даты
  31. Время между датами
  32. Количество часов между датами
  33. Количество дней между датами
  34. Количество месяцев между датами
  35. Комментарии 2
  36. Другие публикации
  37. PHP получить дату неделю назад
  38. 3 ответа
  39. date_modify
  40. Parameters
  41. Return Values
  42. Examples
  43. See Also
  44. User Contributed Notes

Операции с датами и временем Unixtime в PHP

Unix-время (англ. Unix time, также POSIX-время) — система описания моментов во времени. Определяется как количество секунд, прошедших с полуночи 1 января 1970 года.

В PHP текущую метку времени возвращает функция time() и функция strtotime(), также с unix-метками работает класс DateTime.

Получение временных меток и дат

Число дня недели

// Понедельник текущей недели: $time = strtotime('this week monday, 00:00'); echo date('d.m.Y H:i', $time); // 17.07.2023 00:00 // Понедельник предыдущий недели: $time = strtotime('previous week monday, 00:00'); echo date('d.m.Y H:i', $time); // 10.07.2023 00:00 // Понедельник следующей недели: $time = strtotime('next monday, 00:00'); echo date('d.m.Y H:i', $time); // 24.07.2023 00:00

Числа месяца

Текущий месяц:

// Первый день текущего месяца: $time = strtotime('first day of this month 00:00'); echo date('d.m.Y H:i:s', $time); // 01.07.2023 00:00:00 // Последний день текущего месяца: $time = strtotime('last day of this month 23:59'); echo date('d.m.Y H:i:s', $time); // 31.07.2023 23:59:00

Преведущий месяц:

// Первый день предыдущего месяца: $time = strtotime('first day of previous month 00:00'); echo date('d.m.Y H:i:s', $time); // 01.06.2023 00:00:00 // Последний день предыдущего месяца: $time = strtotime('last day of previous month 23:59'); echo date('d.m.Y H:i:s', $time); // 30.06.2023 23:59:00

Следующий месяц:

// Первый день следующего месяца: $time = strtotime('first day of next month 00:00'); echo date('d.m.Y H:i:s', $time); // 01.08.2023 00:00:00 // Последний день следующего месяца: $time = strtotime('last day of next month 23:59'); echo date('d.m.Y H:i:s', $time); // 31.08.2023 23:59:00

Число дней в текущем месяце

Порядковый номер недели

Число дней в текущем году

echo date('L') ? 366 : 365; // 365

Текущий квартал

echo intval((date('n') + 2) / 3); // 3

Арифметические операции

Для сложения и вычитания времени можно применить функцию strtotime() или просто работать с секундами:

Читайте также:  Установка пакетов python offline
1 минута 60 секунд 10 минут 600 секунд
1 час 3600 секунд 10 часов 36000 секунд
1 день 86400 секунд 2 дня 172800 секунд
1 неделя 604800 секунд 2 недели 1209600 секунд
1 месяц 2629743 секунд 2 месяца 5259486 секунд
1 год 31556926 секунд 2 года 63072000 секунд

Прибавить к дате 10 секунд

$time = time() + 10; echo date('d.m.Y H:i:s', $time); // 19.07.2023 13:29:19 /* или */ $time = strtotime('+10 seconds', time()); echo date('d.m.Y H:i:s', $time); // 19.07.2023 13:29:19

Прибавить к дате 10 минут

$time = time() + 600; echo date('d.m.Y H:i:s', $time); // 19.07.2023 13:39:09 /* или */ $time = strtotime('+10 minutes', time()); echo date('d.m.Y H:i:s', $time); // 19.07.2023 13:39:09

Прибавить к дате 1 час

$time = time() + 3600; echo date('d.m.Y H:i:s', $time); // 19.07.2023 14:29:09 /* или */ $time = strtotime('+1 hours', time()); echo date('d.m.Y H:i:s', $time); // 19.07.2023 14:29:09

Прибавить к дате 1 день

$time = time() + 86400; echo date('d.m.Y H:i:s', $time); // 20.07.2023 13:29:09 /* или */ $time = strtotime('+1 days', time()); echo date('d.m.Y H:i:s', $time); // 20.07.2023 13:29:09

Прибавить к дате неделю

$time = strtotime('+1 week', time()); echo date('d.m.Y H:i:s', $time); // 26.07.2023 13:29:09

Прибавить к дате месяц

$time = strtotime('+1 month', time()); echo date('d.m.Y H:i:s', $time); // 19.08.2023 13:29:09

Прибавить к дате год

$time = strtotime('+1 year', time()); echo date('d.m.Y H:i:s', $time); // 19.07.2024 13:29:09

Сколько прошло

Сколько прошло c 8:00

$date = date('d.m.Y 08:00'); $diff = time() - strtotime($date); echo round($diff / 3600, 1); // 5,5 часов

Сколько прошло c понедельника этой недели

$time = strtotime('monday'); $diff = time() - $time; echo round($diff / 3600); // 61 часов echo round($diff / 86400, 1); // 2,6 дней

*Дни недели: monday, tuesday, wednesday, thursday, friday, saturday, sunday.

Сколько прошло c начала года

$date = date('01.01.Y 00:00:00'); $diff = time() - strtotime($date); echo intval($diff / 86400); // 199 дней // или echo date('z'); // 199

Сколько прошло c определённой даты

$date = '10.08.2016'; $diff = time() - strtotime($date); echo round($diff / 3600); // 60829 часов echo round($diff / 86400); // 2535 дней

Сколько остается

Сколько остается до 23:00

$time = strtotime(date('d.m.Y 23:00')); $diff = $time - time(); echo round($diff / 3600, 1); // 9,5 часов

Сколько остается до конца недели

$date = strtotime('next sunday, 23:59'); $diff = $date - time(); echo round($diff / 3600); // 106 часов echo round($diff / 86400); // 4 дней

*Дни недели: monday, tuesday, wednesday, thursday, friday, saturday, sunday.

Читайте также:  Html правильно указать путь

Сколько остается до конца месяца

$time = strtotime(date('Y-m-t 23:59')); $diff = $time - time(); echo round($diff / 3600); // 298 часов echo round($diff / 86400); // 12 дней

Сколько остается до конца года

$time = strtotime(date('Y-12-31 23:59')); $diff = $time - time(); echo round($diff / 3600); // 3970 часов echo round($diff / 86400); // 165 дней

Сколько остается до определенной даты

$date = '10.08.2025'; $diff = strtotime($date) - time(); echo round($diff / 3600); // 18059 часов echo round($diff / 86400); // 752 дней

Время между датами

Количество часов между датами

$date_1 = '01.01.2021 10:00'; $date_2 = '10.03.2021 18:00'; $seconds = abs(strtotime($date_1) - strtotime($date_2)); echo round($seconds / 3600); // 1640

Количество дней между датами

$date_1 = '01.01.2021 10:00'; $date_2 = '10.03.2021 18:00'; $seconds = abs(strtotime($date_1) - strtotime($date_2)); echo round($seconds / 86400, 1); // 68,3

Количество месяцев между датами

$date_1 = strtotime('01.01.2021 10:00'); $date_2 = strtotime('10.03.2021 18:00'); $months = 0; while (strtotime('+1 month', $date_1) < $date_2) < $months++; $date_1 = strtotime('+1 month', $date_1); >$days = round(($date_2 - $date_1) / (60 * 60 * 24)); echo $months . ' месяца, ' . $days . ' дней'; // 2 месяца, 9 дней

Комментарии 2

Специально не поленился и авторизовался, чтобы выразить благодарность авторам сайта, молодцы ребята! Неоднократно на вашем сайте получал именно нужную инфу, у вас все примеры разжеваны, с разными вариантами, не то что где нибудь найдешь вроде то, что тебе нужно и потом полдня думаешь, как под свою задачу это допилить. В данном случае мне нужно было кол-во дней между датами, при чем число должно быть дробным — то есть 3.6 дня, например. У вас нашел, скопировал, и вставил (только имена переменных поменял), все. Именно то, что нужно. И так бывало уже не раз. В общем, спасибо, и обязательно продолжайте в том же духе!

Авторизуйтесь, чтобы добавить комментарий.

Читайте также:  Javascript post multipart form data

Другие публикации

Как настроить Last-Modified

Заголовок Last-Modified помогает оптимизировать загрузку web-страниц и облегчить работу поисковым роботам.

Источник

PHP получить дату неделю назад

Я пытаюсь создать селектор для элементов, которые находятся в течение недели. я получаю временную отметку, такую как Sun, 02 Jun 2013 22:05:00 GMT но селектор не должен быть затронут временем НАПРИМЕР

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

3 ответа

Вы должны только создать дату из даты сравнения. После этого вы должны создать временную метку данной даты Sun, 02 Jun 2013 22:05:00 GMT , и это должно быть преобразовано в дату с датой. И тогда вы создаете еще одну временную метку из этого.

Если вы знаете, что я имею в виду. Это должно работать:

Date (UTC): $t_date
"; echo "Last week: $weekback
Last week (UTC): $t_weekback
"; if ($t_date else < //Date is within a week echo "Within a week: $t_date >$t_weekback"; > ?>

strtotime() PHP strtotime() — это то, что вы ищете.

echo date('jS F Y H:i.s', strtotime('-1 week')); 

Вы можете подавать несколько строк в strtotime() например:

strtotime('yesterday'); strtotime('-2 days ago'); strtotime('+5 days'); 

@xvilo, но этот ответ — одна строка кода. гораздо устойчивее, быстрее. Я бы только добавил, может быть, установить часовой пояс, например, date_default_timezone_set («America / New_York»); Предположим, что пользователь работает поздно ночью, а сервер находится в другом часовом поясе, чем пользователь. Если они не знают об альтернативном часовом поясе сервера, они могут генерировать неточные данные, например, получать отчеты о продажах.

Источник

date_modify

Alter the timestamp of a DateTime object by incrementing or decrementing in a format accepted by DateTimeImmutable::__construct() .

Parameters

Procedural style only: A DateTime object returned by date_create() . The function modifies this object.

A date/time string. Valid formats are explained in Date and Time Formats.

Return Values

Returns the modified DateTime object for method chaining or false on failure.

Examples

Example #1 DateTime::modify() example

$date = new DateTime ( ‘2006-12-12’ );
$date -> modify ( ‘+1 day’ );
echo $date -> format ( ‘Y-m-d’ );
?>

$date = date_create ( ‘2006-12-12’ );
date_modify ( $date , ‘+1 day’ );
echo date_format ( $date , ‘Y-m-d’ );
?>

The above examples will output:

Example #2 Beware when adding or subtracting months

$date -> modify ( ‘+1 month’ );
echo $date -> format ( ‘Y-m-d’ ) . «\n» ;

$date -> modify ( ‘+1 month’ );
echo $date -> format ( ‘Y-m-d’ ) . «\n» ;
?>

The above example will output:

See Also

  • strtotime() — Parse about any English textual datetime description into a Unix timestamp
  • DateTimeImmutable::modify() — Creates a new object with modified timestamp
  • DateTime::add() — Modifies a DateTime object, with added amount of days, months, years, hours, minutes and seconds
  • DateTime::sub() — Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object
  • DateTime::setDate() — Sets the date
  • DateTime::setISODate() — Sets the ISO date
  • DateTime::setTime() — Sets the time
  • DateTime::setTimestamp() — Sets the date and time based on an Unix timestamp

User Contributed Notes

Источник

Оцените статью