转换SQL datetime以在输入类型datetime local中显示

时间:2018-01-04 02:20:31

标签: javascript c# datetime

我有一个日期时间字符串,它以下列格式从控制器中检索:

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,"/"));

还有其他方法可以正确转换吗?

2 个答案:

答案 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>