Например: 2011-09-24.
Нужно отнять от этой даты количество дней, которое хранится в переменной $N
Например: 20
В итоге должно получится 2011-09-4
Подскажите пожалуйста как это можно осуществить.
Спустя 2 минуты, 18 секунд (21.12.2011 - 23:02) dadli написал(а):
можно пряма в мускл усекать время:
а в пхп будит что-то такое:
DATE_SUB('2011-09-24', INTERVAL 20 DAY)
а в пхп будит что-то такое:
$date = '2011-09-24';
$n = 20;
$subdate = mktime(0,0,0,9,24,2011) - 3600*24*$n;
echo date("Y-m-j",$subdate);
Спустя 45 минут, 25 секунд (21.12.2011 - 23:48) Winston написал(а):
Или так можно:
$date = '2011-09-24';
$time = strtotime('-20 days', strtotime($date));
echo date('Y-m-j', $time);
Спустя 15 минут, 47 секунд (22.12.2011 - 00:04) caballero написал(а):
Цитата |
Или так можно: |
Вообще то так нужно если нет желания напоротся на февраль высокосного года или типа того.
Спустя 39 минут, 5 секунд (22.12.2011 - 00:43) dadli написал(а):
caballero
почему? функця mktime() некоректно работает на февраль высокосного года ?
почему? функця mktime() некоректно работает на февраль высокосного года ?
Спустя 16 минут, 57 секунд (22.12.2011 - 01:00) caballero написал(а):
Цитата |
почему? функця mktime() некоректно работает на февраль высокосного года ? |
mktime() не складывает даты
поэтому
это
mktime(0,0,0,9,24,2011)
работает
а это
mktime(0,0,0,9,24,2011) - 3600*24*$n
как карта ляжет
Спустя 1 час, 34 минуты, 21 секунда (22.12.2011 - 02:34) killer8080 написал(а):
Цитата (caballero @ 22.12.2011 - 00:00) |
а это mktime(0,0,0,9,24,2011) - 3600*24*$n как карта ляжет |
С чего бы это? С каких пор работа с метками времени считается не корректной?
Функция date всегда выведет правильную дату по метке.
Спустя 1 день, 17 часов, 18 минут, 19 секунд (23.12.2011 - 19:52) Shpil написал(а):
А нельзя ли в strtotime запихнуть переменную n?
Просто количество дней, которые нужно вычесть вводится пользователем.
Вот так как-то нужно)
Просто количество дней, которые нужно вычесть вводится пользователем.
$time = strtotime(' -".$N."days ', strtotime($dat));
Вот так как-то нужно)
Спустя 1 час, 34 секунды (23.12.2011 - 20:53) Nikitian написал(а):
$time = strtotime(' -'.$N.' days ', strtotime($dat));
Спустя 7 месяцев, 17 дней, 7 часов, 6 минут (11.08.2012 - 03:59) akuchkovsky написал(а):
<?php
$myDate = date("d.m.Y", mktime(0, 0, 0, date("m") , date("d")-20, date("Y")));
echo $myDate;
?>