PHP сравнение даты - PullRequest
       12

PHP сравнение даты

15 голосов
/ 03 декабря 2009

Как я могу проверить, если дата в формате "2008-02-16 12:59:57" меньше 24 часов назад?

Ответы [ 9 ]

26 голосов
/ 03 декабря 2009
if (strtotime("2008-02-16 12:59:57") >= time() - 24 * 60 * 60)
{ /*LESS*/ }
20 голосов
/ 07 декабря 2009

Просто добавив еще один ответ, используя относительные даты strtotime:

$date = '2008-02-16 12:59:57';
if (strtotime("$date +1 day") <= time()) {
    // Do something
}

Я думаю, что это делает код намного более читабельным.

4 голосов
/ 03 декабря 2009
if ((time() - strtotime("2008-02-16 12:59:57")) < 24*60*60) {
  // less than 24 hours ago
}
2 голосов
/ 03 декабря 2009

Php имеет функцию сравнения между двумя объектами даты / времени , но мне это не очень нравится. Это может быть неточным.

Что я делаю, так это использую strtotime () для создания метки времени unix из объекта date, затем сравниваю ее с выводом time ()

2 голосов
/ 03 декабря 2009

например. через strtotime и время ().
Разница должна быть меньше 86400 (секунд в день).

<?php
echo 'now: ', date('Y-m-d H:i:s'), "\n";
foreach( array('2008-02-16 12:59:57', '2009-12-02 13:00:00', '2009-12-02 20:00:00') as $input ) {
  $diff = time()-strtotime($input);
  echo $input, ' ', $diff, " ", $diff < 86400 ? '+':'-', "\n";
}

печать

now: 2009-12-03 18:02:29
2008-02-16 12:59:57 56696552 -
2009-12-02 13:00:00 104549 -
2009-12-02 20:00:00 79349 +

только последняя дата / время тестирования откладываются менее чем за 24 часа.

0 голосов
/ 30 марта 2014

Вы можете использовать Простой PHP для этого:

$date = new simpleDate();
echo $date->now()->subtractHour(24)->compare('2008-02-16 12:59:57')->isBefore();
0 голосов
/ 15 марта 2014

Может быть, это будет легче понять ...

$my_date        = '2008-02-16 12:59:57';
$one_day_after  = date('Y-m-d H:i:s', strtotime('2008-02-16 12:59:57 +1 days'));

if($my_date < $one_day_after) {
echo $my_date . " is less than 24 hours ago!";
} else {
echo $my_date . " is more than 24 hours ago!";
}
0 голосов
/ 12 сентября 2013

Там должна быть ваша переменная дата Как

$date_value = "2013-09-12";
$Current_date = date("Y-m-d"); OR $current_date_time_stamp = time();

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

if(strtotime($current_date) >= strtotime($date_value)) {
 echo "current date is bigger then my date value";
}

OR

if($current_date_time_stamp >= strtotime($date_value)) {
 echo "current date is bigger then my date value";
}
0 голосов
/ 16 мая 2013

Просто используйте его .....

if(strtotime($date_start) >= strtotime($currentDate))
{
// Your code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...