我花了3天的时间试图解决这个问题但没有成功。 我正在使用MongoDB PHP库,我正在尝试使用PHP Docs中的示例转换有效日期中的时间戳,但它总是返回1970-01-17。
代码是:
$utcdatetime = new MongoDB\BSON\UTCDateTime(1453939200);
$datetime = $utcdatetime->toDateTime();
var_dump($datetime);
答案 0 :(得分:14)
documentation 表示构造函数接受一个表示时间戳的整数参数(以毫秒为单位),您将以秒为单位提供时间戳,因此结果无效。
将值乘以1000以获得时间戳(以毫秒为单位),从而返回转换的有效日期时间对象:
$timestamp = 1453939200 * 1000;
$utcdatetime = new MongoDB\BSON\UTCDateTime($timestamp);
$datetime = $utcdatetime->toDateTime();
var_dump($datetime);
答案 1 :(得分:0)
对任何寻找此事的人: 您首先要在时间戳中转换值,然后您将能够在有效的ISODate中转换它。 例如:
$utcdatetime = new MongoDB\BSON\UTCDateTime(strtotime($date));
$date2 = new MongoDB\BSON\Timestamp(1, date($utcdatetime));