到目前为止在php和mongodb中的时间戳

Kev*_*tre 8 php mongodb

我花了3天时间试图解决这个问题但没有成功.我正在使用MongoDB PHP库,我正在尝试使用PHP Docs中的示例转换有效日期中的时间戳,但它总是返回1970-01-17.

代码是:

  $utcdatetime = new MongoDB\BSON\UTCDateTime(1453939200);

  $datetime = $utcdatetime->toDateTime();

  var_dump($datetime);
Run Code Online (Sandbox Code Playgroud)

chr*_*dam 14

文档声明构造函数接受一个表示时间戳的整数参数(以毫秒为单位),您提供的是以秒为单位的时间戳,因此结果无效.

将值乘以1000以获得时间戳(以毫秒为单位),从而返回转换的有效日期时间对象:

$timestamp = 1453939200 * 1000;
$utcdatetime = new MongoDB\BSON\UTCDateTime($timestamp);

$datetime = $utcdatetime->toDateTime();

var_dump($datetime);
Run Code Online (Sandbox Code Playgroud)

  • 听起来你正在运行一个32位版本的PHP,它无法处理像毫秒一样大的时间戳.除了运行64位PHP或根本不使用此Mongo对象之外,没有解决方法,因为您显然需要DateTime.`$ foo = new DateTime(); $ foo->的setTimestamp(1453939200); 后续代码var_dump($ foo的);` (2认同)