将具有unix时间戳值的PHP字符串转换为MySQL时间戳值

时间:2012-07-11 22:13:58

标签: php mysql database

我正在从PHP文件中设置数据库值。在php文件中,我有一个字符串变量,用于存储unix时间戳值。

我正在拥有的MySql表有一个架构,我必须将这些时间戳值存储在登录字段中,该字段是timestamp数据类型。

我试过发送

date('Y-m-d G:i:s', strtotime($userLogin));

到我的数据库,但它存储的全部是0000-00-00 00:00:00

5 个答案:

答案 0 :(得分:2)

MySQL具有FROM_UNIXTIME()功能。

答案 1 :(得分:2)

MySQL提供FROM_UNIXTIME( )UNIX_TIMESTAMP( )函数将Unix时间戳转换为MySQL日期格式,反之亦然。

示例:

$sql = "INSERT INTO yourtable(date, ..., ...) VALUES (FROM_UNIXTIME($yourdate), ..., ...)";

答案 2 :(得分:1)

strtotime()用于将各种日期格式的字符串转换为UNIX时间戳。如果字符串已经是时间戳,则它看起来不像strtotime()的有意义的格式化日期/时间,它将失败。

如果字符串已经是一个时间戳,那么你不需要再做任何事情而不是将其强制转换为整数(严格来说,即使该步骤也不是必需的,但是强制转换会删除任何非数字字符) ,所以它通常不会伤害演员)

此外,MySQL能够解析UNIX时间戳(使用FROM_UNIXTIME(),我想,我必须仔细查看)

答案 3 :(得分:0)

如果$userLogin保持timestamp值,则不需要使用strtotime()

例如,这个应该有效 - >

$userLogin = time();
date('Y-m-d G:i:s', $userLogin);

答案 4 :(得分:0)

我必须添加

    $login = date('Y-m-d H:i:s',(int)($userLogin/1000));

它有效......