我想在javascript中使用Date.Parse将时间字符串说'12:05 PM'转换为日期时间。
当我传入下午12:05或下午12:10或......或下午12:55的值时,下面的startTime返回的值为空,即startTime = null
但是当我通过下午1点,下午1点05分,下午1点10分,上午12点,......,中午12点的值时,它工作正常 给我一个包含时间的日期。
这是导致问题的代码行:
var startTime = Date.parse($("#<%= StartTime.ClientID %>").val()); //code causing the issue
StartTime是一个文本框。
我正在web表单上的ASP.NET应用程序中的client / html中编写上述代码。
答案 0 :(得分:3)
答案 1 :(得分:2)
这里工作正常:
http://jsfiddle.net/vuURb/396/
它可能是一个库加载问题,但您声称它可以在某些时候运行而不是其他运行。您是否尝试将文本框的值输出到控制台,然后再将其输入Date.parse()
?
答案 2 :(得分:1)
对于名为date.js的日期,有一个很好的实用工具。
答案 3 :(得分:1)
基于this answer,你可以这样做:
var startTime = new Date();
var time = $("#<%= StartTime.ClientID %>").val().match(/(\d+)(?::(\d\d))?\s*(p?)/);
startTime.setHours(parseInt(time[1]) + (time[3] ? 12 : 0) );
startTime.setMinutes( parseInt(time[2]) || 0 );
我刚刚阅读了您对使用date.js的其他问题的回复。如果你真的在使用它,你的代码是正确的,那么问题应该是你没有正确加载库,并且你正在使用本机Date对象。