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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转换SQL datetime以在输入类型datetime local中显示相关的知识,希望对你有一定的参考价值。

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

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

还有另一种方法可以正确转换吗?

答案

既然你已经知道格式了

dd-MM-yyyy hh:mm:ss a
3/1/2018 4:02:00 PM

为什么不正确分割字符串(日期部分,然后是时间部分),最后只使用yyyy,MM,dd等创建新的日期对象?

另一答案

使用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>

以上是关于转换SQL datetime以在输入类型datetime local中显示的主要内容,如果未能解决你的问题,请参考以下文章

将 datetime2 数据类型转换为 datetime 数据类型导致值超出范围

错误 sql:将 varchar 数据类型转换为 datetime 数据类型导致值超出范围

T-SQL Datetime转换成字符类型

SQL Server2008中,生日字段为datetime类型,只获取月日,然后根据输入的天数判断好久生日,怎样实现?

将 char 数据类型转换为 datetime 数据类型导致 SQL Server 2005 中的 datetime 值超出范围

SQL Server datetime类型转换超出范围的报错