我需要显示Google Analytics提供的时间戳中的格式化日期 标准解决方案如
var date = new Date(timestamp * 1000);
var formatted = date.toString();
产生错误的值Jan 01 1970
。这是因为时间戳格式。
在PHP中,我可以指定时间戳格式:
\DateTime::createFromFormat('Ymd', $timestamp);
如何在JS中执行此操作?
答案 0 :(得分:1)
由于您收到的日期格式为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()
对象。 .toString()
输出格式化为GMT时区的日期。要以本地时间格式输出,请改用pub unsafe fn from_raw_parts_mut<'a, T>(p: *mut T, len: usize) -> &'a mut [T] {
mem::transmute(Repr { data: p, len: len })
}
。
答案 1 :(得分:0)
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);
&#13;
答案 2 :(得分:0)
在javascript中,您可以使用moment.js
var date = moment.unix(timestamp);
date.format("YYYY MM DD");
的详细信息