我有一个日期时间字符串,它以下列格式从控制器中检索:
dd-MM-yyyy hh:mm:ss a
3/1/2018 4:02:00 PM
我想在输入类型datetime-local
中显示它。所以我需要将datetime转换为这种格式:
yyyy-MM-DDTHH:mm
2018-01-03T16:02
我首先尝试使用此代码,它将输出为js格式,然后使用函数将其格式化。但它错误地将月份视为月份和月份。这意味着输出将显示为2018-03-01T16:02
。
var date_test = new Date("3/1/2018 4:02:00 PM".replace(/-/g,"/"));
还有其他方法可以正确转换吗?
答案 0 :(得分:1)
因为您已经知道格式
dd-MM-yyyy hh:mm:ss a
3/1/2018 4:02:00 PM
为什么不正确分割字符串(日期部分,然后是时间部分) 最后使用yyyy,MM,dd等创建新的日期对象?
答案 1 :(得分:0)
使用moment.js。很棒的图书馆:
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.7.0/moment.min.js"></script>
<script type="text/javascript">
var dateString = "3/1/2018 4:02:00 PM";
var currentDate = moment(dateString, "M/D/YYYY h:mm:ss a");
document.write(currentDate.format("YYYY-MM-DDTHH:mm"))
</script>