2013-12-24 2 views
0

Это код и таблицу MySQLдата Получение от MySQL в JavaScript дает неверную дату

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 (она сохраняется как раз в дб) дает мне неверную date.why это происходит? Am Я чего-то не хватает?

Позвольте мне знать, что более подробная информация требуется, но помогите.

+0

Проверено значение dateString? –

+0

он дает значение db..11.30: 00 в mycase –

+0

var d1 = new Дата ("13 октября 1975 11:13:00") это формат по умолчанию –

ответ

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).

Все даты рассчитываются в миллисекундах с 01 января 1970 года 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.

+0

так что я делаю неправильно? –

+0

используйте запятую, как указано выше, или используйте миллисекунды для создания даты в javascript –

+0

Но я извлекаю значение db (strtime), как передать это в javascript? если бы вы могли показать мне –

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; 
}; 

Это будет принимать время в HH.MM:SS в 24-часовом формате и вернуть объект даты инициализируется текущей даты ,

Смежные вопросы