将毫秒转换为yyyy-MM-dd HH:MM:ss格式Javascript

将毫秒转换为yyyy-MM-dd HH:MM:ss格式Javascript,javascript,date,datetime,time,calendar,Javascript,Date,Datetime,Time,Calendar,输入:- 输出:- milliSecond = '1519073776000'; 将毫秒日期转换为yyyy-MM-dd HH:MM:ss格式问题有两个步骤 步骤1:从毫秒获取日期 这可以通过调用新日期(毫秒数)轻松完成 步骤2:格式化日期对象中的日期字符串 这有点复杂,因为没有默认的方法来实现这一点 最好的方法是创建一个接受格式字符串和日期的函数,并简单地堆栈format.replace(token,date.key)调用 以下是上述步骤的实现: 函数toDate(日期){ 如果(日期===

输入:-

输出:-

milliSecond = '1519073776000';

将毫秒日期转换为
yyyy-MM-dd HH:MM:s
s格式

问题有两个步骤

步骤1:从毫秒获取日期

这可以通过调用
新日期(毫秒数)轻松完成

步骤2:格式化日期对象中的日期字符串

这有点复杂,因为没有默认的方法来实现这一点

最好的方法是创建一个接受格式字符串和日期的函数,并简单地堆栈
format.replace(token,date.key)
调用

以下是上述步骤的实现:

函数toDate(日期){
如果(日期===无效0){
返回新日期(0);
}
if(isDate(日期)){
返回日期;
}否则{
返回新日期(parseFloat(Date.toString());
}
}
函数isDate(日期){
返回(日期-实例-截止日期);
}
函数格式(日期、格式){
var d=截止日期(日期);
返回格式
.替换(/Y/gm,d.getFullYear().toString())
.replace(/m/gm,('0'+(d.getMonth()+1)).substr(-2))
.replace(/d/gm,('0'+(d.getDate()+1)).substr(-2))
.replace(/H/gm,('0'+(d.getHours()+0)).substr(-2))
.replace(/i/gm,('0'+(d.getMinutes()+0)).substr(-2))
.replace(/s/gm,('0'+(d.getSeconds()+0)).substr(-2))
.replace(/v/gm,('0000'+(d.getmillizes()%1000)).substr(-3));
}
//试验
var ms='1519073776000';
var dateFormat=“Y-m-d H:i:s.v”;
var formatted=格式(ms,dateFormat);

console.log(格式化)那将是你正在寻找的日期对象-在这里,让我为你谷歌一下-(是考试时间吗?)我推荐任何与时间相关的东西<代码>时刻(1519073776000)。格式('YYYY-MM-DD HH:MM:ss')
日期-时间返回对于-1519073776000是错误的,应该是-2018-02-20 02:26:16@ShubhamGhormade我使用UTC时间,在此之前,它总是返回GMT+0时间。这可能会给你一个不同于预期的时间,所以我改变了它以适应当地时区。这也意味着日期总是相对于客户端本地时间进行解释。谢谢Emil S.Jorgenstenth上述代码是将日期转换为任何字符串格式的好方法,尽管它确实存在错误。它正确地将1添加到月份,因为javascript中的月份是0索引(Jan=0 Dec=11),但出于某种原因(可能是打字错误),它也将1添加到不应该添加的日期。所以替换的日期部分应该是:.replace(/d/gm,('0'+(d.getDate()+0)).substr(-2))
Date = "2018-02-20 02:26:16";