Главная » 2016 » Июнь » 20 » Разница между двумя датами
13:23
Разница между двумя датами
Поскольку человек не понимает формат timestamp, довольно часто вам придется выводить timestamp в заданном формате, например 15 Октября 2008. Ранее мы уже использовали функцию date (), теперь рассмотрим, как она работает. Функция принимает формат даты, например “М j, Y” и timestamp, а возвращает строку. Например, datе(“М j, Y”, 1151884800) вернет Jul 2, 2006 в PST (Pacific Standard Time). Если вы не укажете timestamp, то date () будет использовать текущее время. В формате даты можно использовать дополнительные символы, например точки с запятыми и запятые, но в отличие от других функций, работающих с форматами вроде printf (), вам нужно быть предельно осторожным, чтобы не использовать зарезервированные символы форматирования Нахождение разницы между двумя датами Если вам нужно вычислить разницу между парой дат, тогда вам пригодится следующий сценарий: Функция calculate_time_dif ference () принимает три аргумента: первый timestamp, второй timestamp и единица измерения, в которой вы хо-тите получить разницу. Единица измерения может быть: second (секунда), minute (минута), hour (час), day (день) или week (неделя). Сценарий сначала преобразует оба timestamp в числовую форму и затем вы-читает значение второго timestamp из первого для определения разницы в секундах (помните, что timestamp - это число секунд, которое прошло с 1 января 1970 года, поэтому разница между двумя timestamp - это разница в секундах). Затем сценарий проверяет массив единиц измерения времени и возвращает результат в выбранной единице времени. Например, если пользователь выбрал единицу minute, разница между двумя датами будет поделена на 60, что соответствует 1 минуте. Если пользователь выбрал неправильную единицу измерения (или ввел не-корректные timestamp), функция возвращает false. Использование сценария Этот сценарий преобразует разницу во времени (7 дней) во все единицы измерения.</p> <?php // Получаем текущую дату и дату, наступающую через 7 дней $timestamp_l = time(); $timestamp_2 - strtotime(“+7 days”); $units = array("e;second"e;, "e;minute"e;, "e;hour"e;, "e;day"e;, "e;week"e;); foreach ($units as $u) { $nunits = calculate_time_difference($timestamp_l, $timestamp_2, $u); echo $nunits . "e; $u(s) have passed between "e; . date("e;m-d-Y"e;, $timestamp_l) . “ and “ . date("e;m-d-Y"e;, $timestamp_2); print "e; "e;; } ?> Совершенствование сценария Этот сценарий может вернуть отрицательное значение секунд, если второй timestamp предшествует первому. Например, если $timestamp_l соответствует 7 июля 2008 года, a $timestamp_2 - 1 июля 2008 года, разница между ними - 6 дней. Вы можете избавиться от этой проблемы, добавив следующую проверку: if ($timestamp2 > $timestampl)   { $time_lapse = abs($timestamp2 - $timestampl); }
Просмотров: 389 | Добавил: AdnrNick | Рейтинг: 0.0/0
Всего комментариев: 0
avatar