我正在从 PHP 文件中设置数据库值。在 php 文件中,我有一个存储 unix 时间戳值的字符串变量。
我拥有的 MySql 表有一个架构,我必须将这些时间戳值存储在时间戳数据类型的登录字段中。
我试着发送
date('Y-m-d G:i:s', strtotime($userLogin));
到我的数据库,但它存储的只是0000-00-00 00:00:00
MySQL 为此具有FROM_UNIXTIME()函数。
MySQL 提供FROM_UNIXTIME( )
和UNIX_TIMESTAMP( )
函数将 Unix 时间戳转换为 MySQL 日期格式,反之亦然。
例子:
$sql = "INSERT INTO yourtable(date, ..., ...) VALUES (FROM_UNIXTIME($yourdate), ..., ...)";
strtotime () 用于将各种日期格式的字符串转换为 UNIX 时间戳。如果字符串已经是时间戳,那么对于 strtotime () 来说,它看起来不像是有意义的格式化日期/时间,它会失败。
如果字符串已经是时间戳,那么除了将其转换为整数之外,您无需对其执行任何操作(严格来说,即使该步骤也不是必需的,但转换会去除任何非数字字符,所以它施法通常不会受伤)
此外,MySQL 能够解析 UNIX 时间戳(使用 FROM_UNIXTIME(),我想,我必须查一下才能确定)
如果$userLogin
持有timestamp
价值超过你不需要使用strtotime()
,
例如,这个应该可以工作-->
$userLogin = time();
date('Y-m-d G:i:s', $userLogin);
我不得不添加
$login = date('Y-m-d H:i:s',(int)($userLogin/1000));
它奏效了……