【发布时间】:2014-01-18 01:26:44
【问题描述】:
我有这个代码每半小时添加一次文本框 这是的截图
我标记的是yo 变量。
这是代码的一部分
<script type="text/javascript">
$(document).ready(function(){
document.getElementById('time').value = yo;
var data=$('#data').val();
var counter = 1;
var d=new Date();
var i;
var newdate= new Array();
newdate=$('#newdate').val();
newdate= newdate.replace("[", "").replace("]", "");
var newdate1=newdate.split(",");
var a=newdate1[0];
var b=newdate1[1];
var c=newdate1[2];
var dateString=$('#strtime').val();
var dateString2=$('#endtime').val();
var dateString1=$('#date').val();
var d1 = new Date(dateString1+" "+dateString);
var d5= new Date(dateString1+" "+dateString2);
var yo=d1;
var d3=new Date(dateString1+" "+a);
var d4=new Date(dateString1+" "+b);
function msToTime(Milliseconds)
{
var d = new Date(Milliseconds);
return [d.getHours(), d.getMinutes(), d.getSeconds()].join(':');
}
setInterval(function() {
var xtime=null;
if(yo.getTime() <= d.getTime() && yo.getTime() <= d5.getTime()){
if( (d1.getTime() == d3.getTime()) || (d1.getTime() == d4.getTime())){
var freq=$('#freq').val();
freq=parseInt(freq);
var newTextBoxDiv = $(document.createElement('div')).attr("id", 'TextBoxDiv' + counter);
newTextBoxDiv.after().html('<div><label style="float:left;">'+yo+'</label></div><textarea name="textbox' + counter + '" id="textbox' + counter + '" ></textarea><input type="hidden" id="time" name="time" value='+yo+'/>');
newTextBoxDiv.appendTo("#TextBoxesGroup");
yo.setMinutes(yo.getMinutes() + freq);
}
counter++;
}
},1000);
});
</script>
你可以在屏幕截图中看到 yo 值出现在标签中。但是当我在 14:30 的文本框中输入一些内容并将其发送到数据库时,由于某种原因,只有 fri 被传递,我得到一个 mysql 错误
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: 'Fri' for column 'time' at row 1
mysql中的列是日期时间。
我也尝试过使用时间列。除了这一行之外,我使用的代码是相同的
newTextBoxDiv.after().html('<div><label style="float:left;">'+yo+'</label></div><textarea readonly="readonly" name="textbox' + counter + '" id="textbox' + counter + '" value="'+msToTime(yo.getTime())+'0" />');
在隐藏字段的值中,我曾经取毫秒并转换为仅时间并传递到数据库。过去的时间不是14:30而是11:30。第一次。
请给我一些建议。
更新
<%
java.util.Date now = new java.util.Date();
String DATE_FORMAT = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
String date = sdf.format(now) ;
String time=request.getParameter("time");
String data0=request.getParameter("textbox1");
String data1=request.getParameter("textbox2");
String data2=request.getParameter("textbox3");
String data3=request.getParameter("textbox4");
String data4=request.getParameter("textbox5");
String data5=request.getParameter("textbox6");
String data6=request.getParameter("textbox7");
String data7=request.getParameter("textbox8");
String data8=request.getParameter("textbox9");
String data9=request.getParameter("textbox10");
String data10=request.getParameter("textbox11");
String data11=request.getParameter("textbox12");
String data12=request.getParameter("textbox13");
String data13=request.getParameter("textbox14");
String user = session.getAttribute("par1").toString();
Connection con=null;
String message="";
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/gla", "root", "root");
Statement st=con.createStatement();
String sql = "INSERT INTO user_data (date,user,data0,data1,data2,data3,data4,data5,data6,data7,data8,data9,data10,data11,data12,data13,time) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
PreparedStatement statement = con.prepareStatement(sql);
statement.setString(1, date);
statement.setString(2, user);
statement.setString(3, data0);
statement.setString(4, data1);
statement.setString(5, data2);
statement.setString(6, data3);
statement.setString(7, data4);
statement.setString(8, data5);
statement.setString(9, data6);
statement.setString(10, data7);
statement.setString(11, data8);
statement.setString(12, data9);
statement.setString(13, data10);
statement.setString(14, data11);
statement.setString(15, data12);
statement.setString(16, data13);
statement.setString(17, time);
int row = statement.executeUpdate();
if (row > 0) {
message="Edit";
}
}
catch (SQLException ex)
{
message = "ERROR: " + ex.getMessage();
ex.printStackTrace();
}
finally {
if (con != null) {
// closes the database connection
try {
con.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
%>
</body>
</html>
【问题讨论】:
标签: javascript mysql datetime