Метка времени - PullRequest
       22

Метка времени

14 голосов
/ 18 января 2009

Кто-нибудь сидит на PHP-функции для преобразования даты в формате 0000-00-00 00:00:00 (datetimesql) в метку времени unix?

Ответы [ 6 ]

30 голосов
/ 29 января 2013

Чтобы сделать это в PHP 5.2, вы можете сделать это:

$datetime = new DateTime();
echo $datetime->format('U');

Более новый способ сделать это в PHP 5.3:

$datetime = new DateTime();
echo $datetime->getTimestamp();
24 голосов
/ 18 января 2009

Другой вариант, поскольку вы пометили этот вопрос SQL: функции MySQL FROM_UNIXTIME и UNIX_TIMESTAMP -> Руководство MySQL

SELECT UNIX_TIMESTAMP(datetime_column) FROM table

Обычно это быстрее, чем вызов функции PHP.

9 голосов
/ 18 января 2009

@ bartek - Как вы заметили, функция PHP strtotime идеально подходит для этого. Он может обрабатывать наиболее распространенные форматы дат, включая строки типа «завтра» или «+5 месяцев».

5 голосов
/ 18 января 2009

Используйте strptime(), чтобы проанализировать время и превратить его в структурированный массив.

Затем передайте результаты этого в функцию mktime(), чтобы получить метку времени UNIX.

4 голосов
/ 30 декабря 2012

У меня есть решение для вас прямо здесь:

/* From MySQL datetime to Unix Timestamp 2003-12-30 23:30:59 -> 1072834230 */
function convertMysqlDateTimeToUnixTimeStamp($date) {
    $yr=strval(substr($date,0,4));
    $mo=strval(substr($date,5,2));
    $da=strval(substr($date,8,2));
    $hr=strval(substr($date,11,2));
    $mi=strval(substr($date,14,2));
    $se=strval(substr($date,17,2));
    return mktime($hr,$mi,$se,$mo,$da,$yr);
}
0 голосов
/ 27 августа 2009

Инкапсуляция решения wvanbergen в функцию (для вашего удобства)

//Convert SQL datetime to unixtime -- by johnboiles
function datetimeToUnixtime($datetime){
    $result = mysql_query("select unix_timestamp('$datetime')");
    $unixtime = mysql_fetch_array($result);
    return $unixtime[0];
}
...