JS中转换为人类可读字符串时如何指定时间戳格式
How to specify timestamp format when converting to human readable string in JS
我需要根据 Google Analytics 提供的时间戳显示格式化日期
像
这样的标准解决方案
var date = new Date(timestamp * 1000);
var formatted = date.toString();
产生了错误的值 Jan 01 1970
。那是因为时间戳格式。
在PHP我可以指定时间戳格式:
\DateTime::createFromFormat('Ymd', $timestamp);
如何在 JS 中执行此操作?
try this type:
var userDate = new Date();
var day = userDate.getDate();
var month = userDate.getMonth() + 1;
var year = userDate.getFullYear();
alert("Date Formate is :"+year+"-"+month + "-" + day);
在 javascript 中,您可以使用外部库,例如 moment.js
var date = moment.unix(timestamp);
date.format("YYYY MM DD");
在此处查看有关 .format
的详细信息 https://momentjs.com/docs/#/displaying/format/
由于您收到的日期格式为 YYYYMMDD
,而不是 Unix
timestamp,可以通过
使用 String.prototype.slice
.
提取年、月和日
var timestamp = '20170306',
year = parseInt(timestamp.slice(0, 4), 10),
month = parseInt(timestamp.slice(5, 6), 10),
day = parseInt(timestamp.slice(7, 8), 10);
// - 1 because the Date constructor expects a 0-based month
date = new Date(Date.UTC(year, month - 1, day)),
gmt = date.toGMTString(),
local = date.toString();
console.log('GMT:', gmt); // Mon, 06 Mar 2017 00:00:00 GMT
console.log('Local:', local);
这假设您使用的日期是 UTC(它们很可能是)。 Date.UTC
创建一个时间戳(自 Unix 纪元以来以毫秒为单位),然后将其提供给 new Date()
,后者使用它来创建表示该时间的 Date
对象。 .toGMTString()
输出为 GMT 时区格式化的日期。要以本地时间格式输出,请改用 .toString()
。
我需要根据 Google Analytics 提供的时间戳显示格式化日期 像
这样的标准解决方案var date = new Date(timestamp * 1000);
var formatted = date.toString();
产生了错误的值 Jan 01 1970
。那是因为时间戳格式。
在PHP我可以指定时间戳格式:
\DateTime::createFromFormat('Ymd', $timestamp);
如何在 JS 中执行此操作?
try this type:
var userDate = new Date();
var day = userDate.getDate();
var month = userDate.getMonth() + 1;
var year = userDate.getFullYear();
alert("Date Formate is :"+year+"-"+month + "-" + day);
在 javascript 中,您可以使用外部库,例如 moment.js
var date = moment.unix(timestamp);
date.format("YYYY MM DD");
在此处查看有关 .format
的详细信息 https://momentjs.com/docs/#/displaying/format/
由于您收到的日期格式为 YYYYMMDD
,而不是 Unix
timestamp,可以通过
使用 String.prototype.slice
.
var timestamp = '20170306',
year = parseInt(timestamp.slice(0, 4), 10),
month = parseInt(timestamp.slice(5, 6), 10),
day = parseInt(timestamp.slice(7, 8), 10);
// - 1 because the Date constructor expects a 0-based month
date = new Date(Date.UTC(year, month - 1, day)),
gmt = date.toGMTString(),
local = date.toString();
console.log('GMT:', gmt); // Mon, 06 Mar 2017 00:00:00 GMT
console.log('Local:', local);
这假设您使用的日期是 UTC(它们很可能是)。 Date.UTC
创建一个时间戳(自 Unix 纪元以来以毫秒为单位),然后将其提供给 new Date()
,后者使用它来创建表示该时间的 Date
对象。 .toGMTString()
输出为 GMT 时区格式化的日期。要以本地时间格式输出,请改用 .toString()
。