使用moment.js将日期时间格式化为YYYY-MM-DD HH:mm:ss

159

我有一个字符串,格式如下:

var dateTime = "06-17-2015 14:24:36"

我正在使用 moment.js 并尝试将其转换为 YYYY-MM-DD HH:mm:ss -> 2015-06-17 14:24:36

我已经尝试了这个方法:

dateTime = moment( dateTime, 'MM-DD-YYYY HH:mm:ss',true).format("YYYY-MM-DD HH:mm:ss");

但是获取到的dateTime为无效日期。


1
变量dateTime不应该是一个字符串吗?像这样:var dateTime = "06-17-2015 14:24:36" - Evans Murithi
3个回答

316

const format1 = "YYYY-MM-DD HH:mm:ss"
const format2 = "YYYY-MM-DD"
var date1 = new Date("2020-06-24 22:57:36");
var date2 = new Date();

dateTime1 = moment(date1).format(format1);
dateTime2 = moment(date2).format(format2);

document.getElementById("demo1").innerHTML = dateTime1;
document.getElementById("demo2").innerHTML = dateTime2;
<!DOCTYPE html>
<html>
<body>

<p id="demo1"></p>
<p id="demo2"></p>

<script src="https://momentjs.com/downloads/moment.js"></script>

</body>
</html>


谢谢回复。我得到的日期格式是MM-DD-YYYY HH:mm:ss,我需要将其转换为YYYY-MM-DD HH:mm:ss格式。 - Nagarjuna Reddy
1
moment("06-17-2015 14:24:36").format("YYYY-MM-DD HH:mm:ss"); - Nagarjuna Reddy
3
我有这样的日期2017-01-09T18:30:00.000Z,我需要将它转换为YYYY-MM-DD HH:mm:ss格式。我尝试了这个 dateTime = moment(2017-01-09T18:30:00.000Z).format("YYYY-MM-DD HH:mm:ss"); 但得到的时间是0点。为什么?答:原因是您在moment函数中的日期格式不正确。应该将日期字符串放在引号里面,像这样:dateTime = moment('2017-01-09T18:30:00.000Z').format("YYYY-MM-DD HH:mm:ss"); 现在你应该可以得到正确的时间了。 - Pooja
8
请使用moment.utc()方法代替moment()。例如:dateTime = moment.utc(2017-01-09T18:30:00.000Z).format("YYYY-MM-DD HH:mm:ss")。注意保持原文意思不变,同时让翻译更加通俗易懂。 - Pooja
1
非常感谢!它在TypeScript中也非常有帮助。 - Sachini Witharana
显示剩余4条评论

27
使用不同的格式或模式从日期中获取信息

var myDate = new Date("2015-06-17 14:24:36");
console.log(moment(myDate).format("YYYY-MM-DD HH:mm:ss"));
console.log("Date: "+moment(myDate).format("YYYY-MM-DD"));
console.log("Year: "+moment(myDate).format("YYYY"));
console.log("Month: "+moment(myDate).format("MM"));
console.log("Month: "+moment(myDate).format("MMMM"));
console.log("Day: "+moment(myDate).format("DD"));
console.log("Day: "+moment(myDate).format("dddd"));
console.log("Time: "+moment(myDate).format("HH:mm")); // Time in24 hour format
console.log("Time: "+moment(myDate).format("hh:mm A"));
<script src="https://momentjs.com/downloads/moment.js"></script>
更多信息请参见:https://momentjs.com/docs/#/parsing/string-format/


1

将当前日期时间格式化为'YYYY-MM-DD HH:mm:ss'的字符串:
const currentDate = moment(new Date()).format('YYYY-MM-DD HH:mm:ss');
将给定的日期时间dateTime格式化为'YYYY-MM-DD HH:mm:ss'的字符串:
const Date = moment(dateTime).format('YYYY-MM-DD HH:mm:ss');


这似乎与旧版答案相同...您的版本有什么新的或不同的地方吗? - Lee_Dailey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接