Получить дату в php через 2 недели - PullRequest
10 голосов
/ 27 августа 2010
$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 сентября)

Ответы [ 3 ]

24 голосов
/ 27 августа 2010
$dateInTwoWeeks = strtotime('+2 weeks');

См. strtotime().


Обновление # 1 : Да, это ленивый способ сделать это. Однако я считаю, что возможное отрицательное влияние на производительность компенсируется положительным влиянием на читаемость / понимание кода. В случае проблем с производительностью можно переключиться на собственное (целочисленное) управление временем (и добавить комментарии).


Обновление № 2 : необязательным вторым аргументом является ссылочная дата. E.g.:

strtotime('+2 weeks', mktime(0, 0, 0, 2, 8, 1984)); // 8th Feb. 1984 + 2 weeks
4 голосов
/ 27 августа 2010

Вы можете указать время начала (откуда рассчитывать), используя 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")));
3 голосов
/ 27 августа 2010

Вы можете просто добавить число секунд двух недель:

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...