PHP 中的时间戳是什么格式,为什么我不能使用 javascript 转换它?
What format timestamp is this in PHP and why can't i convert it using javascript?
这个 API 我正在使用 returns 以下格式的时间戳。在他们的文档中只解释为 "timestamp in 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
格式的日期。要将其转换为 JavaScript 中的 Date
,您需要提取组件部分(使用例如 .slice
), subtract one from the month to make it a JS month (indexed from 0) and then pass that into 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);
这个 API 我正在使用 returns 以下格式的时间戳。在他们的文档中只解释为 "timestamp in 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
格式的日期。要将其转换为 JavaScript 中的 Date
,您需要提取组件部分(使用例如 .slice
), subtract one from the month to make it a JS month (indexed from 0) and then pass that into 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);