从mysql检索日期到javascript给出的日期无效

从mysql检索日期到javascript给出的日期无效,java,javascript,jquery,mysql,Java,Javascript,Jquery,Mysql,这是代码和mysql表 Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/2a", "root", "root"); Statement st=con.createStatement(); ResultSet rsta=st.executeQuery("Select * from data"); while(rsta.next()) {

这是代码和mysql表

Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/2a", "root", "root");
Statement st=con.createStatement();
ResultSet rsta=st.executeQuery("Select * from data");
while(rsta.next()) {
  x14=rsta.getTime("strtime");
}
%>
<div id="TextBoxesGroup">
<input type="hidden" id="time" name="time" value="<%=x14%>"/>
</div>
<script>

$(document).ready(function(){     
    var dateString=$('#time').val();
    var d1 = new Date(dateString);


    var newTextBoxDiv = $(document.createElement('div'))
         .attr("id", 'TextBoxDiv' + counter);
    newTextBoxDiv.after().html('<div><label style="float:left;">'+d1+'</label>);
    newTextBoxDiv.appendTo("#TextBoxesGroup");  
</script>


+---------+-------------+------+-----+---------+----------------+
| Field   | Type        | Null | Key | Default | Extra          |
+---------+-------------+------+-----+---------+----------------+
| id      | int(11)     | NO   | PRI | NULL    | auto_increment |
| date    | date        | YES  |     | NULL    |                |
| strtime | time        | YES  |     | NULL    |                |
| endtime | time        | YES  |     | NULL    |                |
| freq    | varchar(30) | YES  |     | NULL    |                |
| inter   | int(11)     | YES  |     | NULL    |                |
+---------+-------------+------+-----+---------+----------------+
变量d1it以时间形式保存在db中,它给了我无效的日期。为什么会发生这种情况?我是否遗漏了什么


如果需要更多信息,请告诉我,但请提供帮助。

有四种开始日期的方法:

new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
var today = new Date()
var d1 = new Date("October 13, 1975 11:13:00")
var d2 = new Date(1979,5,24)
var d3 = new Date(1979,5,24,11,33,0)
以上大多数参数都是可选的。未指定,导致传入0

创建日期对象后,有许多方法允许您对其进行操作。大多数方法都允许您使用本地时间或UTC universal或GMT时间获取和设置对象的年、月、日、小时、分钟、秒和毫秒

从1970年1月1日世界时UTC 00:00:00开始,所有日期均以毫秒为单位计算,其中一天包含86400000毫秒

启动日期的一些示例:

new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)
var today = new Date()
var d1 = new Date("October 13, 1975 11:13:00")
var d2 = new Date(1979,5,24)
var d3 = new Date(1979,5,24,11,33,0)

它的日期对象,因此您应该需要dateString而不是timeString。

这里有一个帮助函数,可以从您的自定义时间格式中获取正确的日期对象

var helper = function(time) {
    var regex = /^\s*((0?[0-9])|(1?[0-9])|(2?[0-3]))\s*\.\s*[0-5]?[0-9]\s*:\s*[0-5]?[0-9]\s*$/g;
    time = time.match(regex);

    if(time && time.length === 1) {
        time = time[0];
        var date = new Date();
        var endIndex = time.indexOf('.');
        var hr = Number(time.substr(0, endIndex).trim());
        time = time.substr(endIndex + 1).trim();
        endIndex = time.indexOf(':');             
        var min = Number(time.substr(0, endIndex).trim());
        time = time.substr(endIndex + 1).trim();                
        var sec = Number(time);
        date.setHours(hr);
        date.setMinutes(min);
        date.setSeconds(0);
        return date;
    }

    return null;
};
这将接受24小时格式的HH.MM:SS时间,并返回初始化为当前日期的日期对象

我认为Mysql中的type Time的格式是HH:mm:ss 因此,您不能将其解析为使用javascript的日期。 当从mysql获取数据时,需要将日期和strtime结合起来

 x14= rsta.getDate("date") + " " +  rsta.getTime("strtime");

检查了dateString的值?它给出了mycasevar d1=new Date1975年10月13日11:13:00中的db值..11.30:00这是默认值format@Vishal在建议的问题中,我不能只传递时间?使用逗号分隔,如上所述,或使用毫秒在JavaScription中构造日期,但我正在检索db VALUESTRIME,我应该如何在javascript中传递它?如果您可以显示meIts date对象而不是time。那么在我的数据库中,我可能必须将列类型更改为datetime?如果可能,您可以。使用时间戳进行处理。