2013-06-02 6 views
0

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

+0

где вы получаете даты, базу данных, текстовую строку, csv файл? Можете ли вы показать нам код, который вы пробовали до сих пор? Спасибо – Drewdin

+1

Я думаю, что вы просто ищете функцию strtotime() [http://php.net/manual/fr/function.strtotime.php] – Jerska

+0

Я уже получил дату, с которой хочу сравнить и сохранил ее в строку. Мне интересно, что делать дальше ... – Confiqure

ответ

5

Используйте класс DateTime, чтобы сравнить текущую дату с timestring. Как только у вас есть объекты 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'; 
} 

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

Смежные вопросы