在PHP中,时间戳是什么格式,为什么不能用javascript转换?

问题描述 投票:1回答:1

我使用的这个API返回的时间戳格式如下。在他们的文档中只解释为 "UTC中的时间戳"。我不知道这是什么格式,也不知道如何用javascript将其转换。我试过使用new Date(),moment.js,以及所有介于两者之间的方法。有谁能解释一下如何用JS而不是PHP来做这件事?

// timestamp from api
20200430094700

使用Javascript,我总是得到一些方式,如。

Friday, February 16, 2610 6:34:54.700 AM

在这里,我将使用PHP将其转换为一个正确的unix时间戳和一个日期对象。

$timestamp = 20200430094700;

$e = new DateTime($timestamp);

// This is the correct Unix timestamp
// 1588258020
echo date_timestamp_get($e);        

// This is the correct date
// [date] => 2020-04-30 09:47:00.000000
print_r($e);
javascript php timestamp unix-timestamp
1个回答
2
投票

正如评论中所指出的那样。20200430094700 不是时间戳,而是日期,格式为 YYYYMMDDHHMMSS. 要将其转换为 Date 在JavaScript中,你需要提取组件部分(使用例如 .slice),从月份中减去一个,使其成为JS月份(从0开始索引),然后将其传递到 Date.UTC 并将其输出用于 Date 构造者。

const ts = '20200430094700';

const d = new Date(Date.UTC(ts.slice(0,4), ts.slice(4,6)-1, ts.slice(6,8), ts.slice(8,10), ts.slice(10,12), ts.slice(12,14)));
console.log(d);
© www.soinside.com 2019 - 2024. All rights reserved.