从mysql检索日期到javascript给出的日期无效
这是代码和mysql表从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()) {
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?如果可能,您可以。使用时间戳进行处理。