我正在从PHP文件中设置数据库值。在php文件中,我有一个字符串变量,用于存储unix时间戳值。
我正在拥有的MySql表有一个架构,我必须将这些时间戳值存储在登录字段中,该字段是timestamp数据类型。
我试过发送
date('Y-m-d G:i:s', strtotime($userLogin));
到我的数据库,但它存储的全部是0000-00-00 00:00:00
答案 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));
它有效......