Javascript 在JS中转换为可读字符串时如何指定时间戳格式

Javascript 在JS中转换为可读字符串时如何指定时间戳格式,javascript,unix-timestamp,Javascript,Unix Timestamp,我需要显示一个格式化的日期从谷歌分析提供的时间戳 标准溶液 var date = new Date(timestamp * 1000); var formatted = date.toString(); 产生错误的值1970年1月1日。这是因为时间戳格式 在PHP中,我可以指定时间戳格式: \DateTime::createFromFormat('Ymd', $timestamp); 如何在JS中执行此操作? 试试这种类型: var userDate=新日期(); var day=userD

我需要显示一个格式化的日期从谷歌分析提供的时间戳 标准溶液

var date = new Date(timestamp * 1000);
var formatted = date.toString();
产生错误的值
1970年1月1日
。这是因为时间戳格式

在PHP中,我可以指定时间戳格式:

\DateTime::createFromFormat('Ymd', $timestamp);
如何在JS中执行此操作?

试试这种类型:
var userDate=新日期();
var day=userDate.getDate();
var month=userDate.getMonth()+1;
var year=userDate.getFullYear();

警报(“日期格式为:“+年+”-“+月+”-“+日”)在javascript中,您可以使用外部库,如


请参见此处有关
.format
的详细信息

由于您接收的日期格式为
YYYYMMDD
,而不是a,因此您可以通过 使用提取年、月和日期

var时间戳='20170306',
year=parseInt(timestamp.slice(0,4,10)),
month=parseInt(timestamp.slice(5,6,10),
day=parseInt(timestamp.slice(7,8,10));
//-1,因为日期构造函数期望以0为基础的月份
日期=新日期(date.UTC(年、月-1日)),
gmt=date.togmString(),
local=date.toString();
console.log('GMT:',GMT);//2017年3月6日星期一00:00:00 GMT

console.log('Local:',Local)时间戳从哪里来?你确定它是以秒为单位,不是以毫秒为单位吗?如果是在几秒钟内,这应该是可行的。
时间戳
中包含什么数字?如果它是
0
,或强制为
0
的某个对象,例如空字符串,则
0*1000
0
new Date(0)
返回一个引用Unix纪元或1970年1月1日的日期对象。例如20170306。应该是06点03分。17@ymakux这不是Unix时间戳,它只是一个用YYYYMMDD格式化的日期。A是自1970-01-01以来的秒数。2017-03-06的正确Unix时间戳应为
1488787200000
。如果它只是一个YYYYMMDD格式的日期,那么很容易解析:
新日期(timestamp.slice(0,4),timestamp.slice(5,6)-1,timestamp.slice(7,8))
。(之所以使用
-1
,是因为Date构造函数期望的是一个以0为基础的月份)。将
-1
切片
生成的字符串一起使用会隐式将其强制为一个数字。您可能希望使用
parseInt
显式强制它,以确保代码的意图是明确的:
newdate(timestamp.slice(0,4),parseInt(timestamp.slice(5,6,10)-1,timestamp.slice(7,8))
.D'oh。正确的Unix时间戳应该是
1488787200
,而不是
1488787200000
我用JS代码生成它,它以毫秒为单位生成时间,而不是秒,并且忘记了除以1000得到秒。谢谢,我知道这个库。没有选择。很多只打印日期的代码都有非标准的时间戳格式——这就是问题所在
var date = moment.unix(timestamp);
date.format("YYYY MM DD");