Расчет даты - PullRequest
       29

Расчет даты

1 голос
/ 18 июня 2009

Мне нужно сделать метку времени, чтобы поместить в MySQL. Пользователь отправляет число (недель), которое мне нужно добавить столько недель к сегодняшней дате. Я пытаюсь рассчитать дату окончания объявления, которое пользователь отправляет.

Любые предложения о том, как это сделать? Спасибо!

Ответы [ 4 ]

3 голосов
/ 18 июня 2009

Вы можете использовать strtotime, чтобы добавить время к дате - он принимает второй аргумент, который является текущим временем, если ничего не передано. Затем вы можете передать это созданное время функции date, чтобы создать свою метку времени:

$timestamp = date('Y-m-d H:i:s', strtotime('+10 weeks'));
2 голосов
/ 18 июня 2009

Я думаю, что DATE_ADD (CURDATE (), INTERVAL 2 WEEK) добавит 2 недели к текущей дате, например

0 голосов
/ 18 июня 2009

Просто добавим, что некоторые скажут, что хранение времени UNIX в виде простого старого поля int в базе данных является более гибким и переносимым решением. Кроме того, вставки и обновления происходят быстрее, потому что они включают в себя только хранение простых целых чисел. Это действительно зависит от того, сколько манипуляций с датами вам нужно сделать на уровне базы данных. Я стремлюсь к переносимости и выполняю все вычисления даты в PHP. Чтобы сохранить текущую метку времени, я бы просто вставил в целочисленный столбец вывод:

strtotime('now');

или

time();

, которые оба возвращают текущую (unix) временную метку. После этого сравнение дат может быть выполнено путем извлечения меток времени из базы данных и выполнения простой арифметической операции, такой простой, как:

if($tsFromDb > strtotime('+28 days')) {
   echo 'it is the future, zombies!';
}

Это действительно зависит от того, для чего вы используете даты.

0 голосов
/ 18 июня 2009

Если вы хотите, чтобы срок действия объявления истек в определенное время суток, вы можете использовать mktime:

$ день = дата ("d") + ($ недель * 7);
указываете ей ($ час, $ минута, $ второе, $ месяц, $ день, $ в год);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...