$addhr = time() + (1 * 13 * 60 * 60);
$curDateTimeMil= date("Y-m-d G:i:s",$addhr);
echo $curDateTimeMil;
Это эхо 2010-08-27 16:21:31
.
Как я могу получить дату через 2 недели? (сентябрь 10)
Вы можете указать время начала (откуда считать) с помощью mktime()
.
Пример: через две недели после 10 сентября 2010 г. (т. е. +14 дней):
$date = date("Y-m-d", mktime(0, 0, 0, 9, 10 + 14, 2010);
Чтобы получить только ДАТУ (не время) на две недели позже (+14 дней) с сегодняшнего дня:
$date = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d")+14, date("Y")));
И это дает с ВРЕМЯ через две недели (+14 дней) с этого момента:
$date = date("Y-m-d G:i:s", mktime(date("G"), date("i"), date("s"), date("m"), date("d")+14, date("Y")));
$dateInTwoWeeks = strtotime('+2 weeks');
См. strtotime()
.
Обновление №1: Да, это ленивый способ. Тем не менее, я считаю, что возможное негативное влияние на производительность компенсируется положительным эффектом на удобочитаемость/понимание кода. Если производительность является проблемой, можно переключиться на собственное (целочисленное) управление временем (и добавить комментарии).
Обновление №2: Необязательный второй аргумент — это исходная дата. Например:
strtotime('+2 weeks', mktime(0, 0, 0, 2, 8, 1984)); // 8th Feb. 1984 + 2 weeks
Вы можете просто добавить количество секунд двух недель:
2 weeks = 2 · 7 days = 14 days
= 14 · 24 hours = 336 hours
= 336 · 60 minutes = 20160 minutes
= 20160 · 60 seconds = 1209600 seconds
Итак:
$curDateTimeMil += 1209600;
// or
$curDateTimeMil += 2 * 7 * 24 * 60 * 60;