这是代码和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 | |
+---------+-------------+------+-----+---------+----------------+
变量d1(它在db中保存为时间)给了我无效的日期。为什么会发生这种情况?我错过了什么吗?
请告诉我更多信息,但需要帮助。
答案 0 :(得分:1)
有四种方式来启动日期:
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)
以上大多数参数都是可选的。未指定,导致传入0。
创建Date对象后,可以使用许多方法对其进行操作。大多数方法允许您使用本地时间或UTC(通用或GMT)时间来获取和设置对象的年,月,日,小时,分钟,秒和毫秒。
所有日期均以毫秒为单位,从世界时间1970年1月1日00:00:00(UTC)开始,每天包含86,400,000毫秒。
启动日期的一些例子:
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。
答案 1 :(得分:0)
这是一个辅助函数,用于从自定义时间格式中获取正确的日期对象
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中的时间并返回初始化为当前日期的日期对象。
答案 2 :(得分:0)
我认为Time
中的类型Mysql
的格式为HH:mm:ss
因此,您无法将其解析为date
使用javascript。
从mysql获取数据时,您需要结合date
和strtime
x14= rsta.getDate("date") + " " + rsta.getTime("strtime");