PHP - форматирование даты

У меня дата хранится в строковой переменной как таковой: Sun Jun 02 08:54:12 EDT 2013, Как я могу преобразовать это в переменную даты, чтобы сравнить разницу во времени между текущей датой и предоставленной датой. Спасибо!

1 ответ

Решение

Использовать DateTime Класс для сравнения текущей даты с временной шкалой. Когда у вас есть DateTime объекты, которые вы можете легко получить разницу, используя метод DateTime::diff(), Это вернет DateInterval объект, который можно распечатать, используя его format() метод.

$dt = new DateTime('Sun Jun 02 08:54:12');
$now = new DateTime();

if($now > $dt) {
    $difference = $now->diff($dt);
    echo $difference->format('The time is %H hours %I minutes %S seconds in the past');
} else if ($now < $dt) {
    $difference = $dt->diff($now);
    echo $difference->format('The time is %H hours %I minutes %S seconds in the future');
} else {
    echo 'the time is now';
}

Примечание. Конечно, вам придется расширять вывод таким образом, чтобы он дополнительно отображал разницу в годах, месяцах и днях. Я не сделал этого в примере, потому что я ленивый... аааа, потому что строка будет слишком длинной для примера...;)

Другие вопросы по тегам