|
|
|
| 1.Подскажите, как отнимать целое число дней от заданной даты.
2. (Вопрос новичка) Дата хранится в виде строки "20060802", ясно, что я могу substr извлечь оттуда день, месяц, год. Как перевести это в микросекунды, отнять целое число дней и вернуться назад?
необходимо учитывать перескок с месяца на месяц и с года на предыдущий.
заранее благодарен. | |
|
|
|
|
|
|
|
для: Mykola
(02.08.2006 в 18:45)
| | разобрать значение на составляющие с помощью регулярных выражений, а затем воспользоваться функцией mktime | |
|
|
|
|
|
|
|
для: Loki
(02.08.2006 в 19:15)
| | я нашёл такое решение
$yesterday = mktime(0, 0, 0, date("m"), date("d")-1, date("Y")); | |
|
|
|
|
|
|
|
для: Mykola
(02.08.2006 в 21:29)
| |
<?
$date="20060802";
preg_match('/(\\d{4})(\\d{2})(\\d{2})/', $date, $regs);
$yesterday = mktime(0, 0, 0, $regs[1], $regs[2]-1, $regs[0]));
|
| |
|
|
|
|
|
|
|
для: Loki
(02.08.2006 в 21:38)
| | А если будет первый день месяца?
<?php
$date = "20060802";
list($y, $m, $d) = sscanf($date, "%4d%2d%2d");
$date = mktime(0, 0, 0, $m, $d, $y));
$yesterday = strtotime("-1 day", $date)
|
| |
|
|
|
|
|
|
|
для: Саня
(02.08.2006 в 22:48)
| | mktime корректно обрабатывает отрицательные значения. | |
|
|
|
|
|
|
|
для: Loki
(02.08.2006 в 23:54)
| | А если дата будет до 1970 года? =) | |
|
|
|
|
|
|
|
для: ec_stasis
(03.08.2006 в 01:30)
| | Юникс умеет работать с отрицательными метками времени (чего не скажешь о винде). | |
|
|
|
|
|
|
|
для: Саня
(03.08.2006 в 01:37)
| | Получить вчерашнюю дату
echo date('d/m/Y', strtotime("-1 day"));
|
| |
|
|
|