





Преобразование из метки времени в формат:
date('Y-m-d', $timestamp);
Преобразование из форматированного в метку времени:
mktime(0, 0, 0, $month, $day, $year, $is_dst);
Дополнительную документацию см. В Дата и mktime.
Когда дело доходит до сохранения, решать вам, использовать ли формат MySQL DATE для хранения в качестве форматированной даты; как целое число для хранения в виде отметки времени UNIX; или вы можете использовать формат MySQL TIMESTAMP, который преобразует числовую метку времени в читаемый формат. Проверьте MySQL Doc для информации TIMESTAMP.
strtotime () и getdate () - две функции, которые можно использовать для получения дат из строк и временных меток. Однако не существует стандартной библиотечной функции, которая преобразует метки времени MySQL и PHP.
Используйте функцию PHP Дата. Возможно, вам придется преобразовать метку времени mysql в метку времени Unix в вашем запросе с помощью функции UNIX_TIMESTAMP в mysql.
Строка даты в форме:
YYYY-MM-DD
не имеет времени, связанного с этим. Метка времени MySQL имеет вид:
YYYY-MM-DD HH:mm:ss
чтобы сравнить эти два, вам нужно либо добавить время в строку даты, например, полночь
$datetime = '2008-08-21'.' 00:00:00';
а затем используйте функцию для сравнения времени между ними.
if (strtotime($datetime) > strtotime($timestamp)) {
echo 'Datetime later';
} else {
echo 'Timestamp equal or greater';
}
Вы можете избежать использования strtotime() или getdate() в PHP, используя функцию MySQL UNIX_TIMESTAMP().
SELECT UNIX_TIMESTAMP(timestamp) FROM sometable
Полученные данные будут стандартной целочисленной меткой времени Unix, поэтому вы можете провести прямое сравнение с time().
Я написал эту небольшую функцию, чтобы упростить процесс:
/**
* Convert MySQL datetime to PHP time
*/
function convert_datetime($datetime) {
//example: 2008-02-07 12:19:32
$values = split(" ", $datetime);
$dates = split("-", $values[0]);
$times = split(":", $values[1]);
$newdate = mktime($times[0], $times[1], $times[2], $dates[1], $dates[2], $dates[0]);
return $newdate;
}
надеюсь, это поможет
Моя проблема, я построил это, поскольку у меня были проблемы в прошлом (по причине, которая ускользает от меня сейчас).
Вся эта функция может быть заменена одним вызовом strtotime. Зачем изобретать велосипед?