我使用的这个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);
正如评论中所指出的那样。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);