18

是否有人坐在 PHP 函数上将格式 0000-00-00 00:00:00(datetimesql) 的日期转换为 unix 时间戳?

4

6 回答 6

38

要在 PHP 5.2 中执行此操作,您可以执行以下操作:

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

从 PHP 5.3 开始,一种更新的方法是:

$datetime = new DateTime();
echo $datetime->getTimestamp();
于 2013-01-29T03:35:43.137 回答
24

您使用 SQL 标记此问题的另一个选项:MySQL 函数FROM_UNIXTIMEUNIX_TIMESTAMP-> MySQL 手册

从表中选择 UNIX_TIMESTAMP(datetime_column)

这通常比 PHP 函数调用更快。

于 2009-01-18T17:47:41.057 回答
9

@bartek - 正如你所指出的,PHP 的strtotime函数非常适合这个。它可以处理最常见的日期格式,包括像“明天”或“+5 个月”这样的字符串。

于 2009-01-18T17:55:46.017 回答
6

我在这里为您提供解决方案:

/* 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);
}
于 2012-12-30T16:30:15.627 回答
5

用于strptime()解析时间并将其转换为结构化数组。

然后将结果传递给mktime()函数以获得 UNIX 时间戳。

于 2009-01-18T17:44:40.640 回答
-3

将 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];
}
于 2009-08-26T21:33:54.547 回答