我试图设置从文本框中读取它的约会的开始日期,这是我的代码:
var start_temp = $('#start-datetime').val()
var start = new Date(start_temp.toString('dd/MM/yyyy HH:mm'));
var currentMin = parseInt(start.toString('mm'));
if (currentMin > 0 && currentMin < 15)
start.set({ 'minute': 15 });
else if (currentMin > 15 && currentMin < 30)
start.set({ 'minute': 30 });
else if (currentMin > 30 && currentMin < 45)
start.set({ 'minute': 45 });
else
start.addHours(1).set({ 'minute': 0 });
$('#start-datetime').val(start.toString('dd/MM/yyyy HH:mm'));
如何看到我在文本框start-datetime
中获取开始日期,此日期已填充约会信息。但现在这并不重要。
稍后我将此值传递给start
变量,转换为日期对象并设置日期格式。但我明白了:
无效日期
如果我打印出来:$('#start-datetime).val()
我得到:
20/11/2015 12:15
我做错了什么?
答案 0 :(得分:2)
由于您使用的是Date.js,请利用animation-name:
Date.parse
或在moment.js
var start = Date.parse($('#start-datetime').val());
答案 1 :(得分:0)
这是一种没有任何库的方法。
https://jsfiddle.net/st77vyLg/1/
//read the string
var start_temp = document.getElementById('start-datetime').value.split('/');
//get the data out of it
day=start_temp[0];
month=start_temp[1];
start_temp=start_temp[2].split(" ");
year=start_temp[0];
start_temp=start_temp[1].split(":");
hour=start_temp[0];
minute=start_temp[1];
//make a date variable
var start = new Date(year,month,day,hour,minute);
alert(start);
答案 2 :(得分:-1)
我认为可能是这一行:
var start = new Date(start_temp.toString('dd/MM/yyyy HH:mm'));
start_temp只是一个String(由第1行中的jQuery.val()
返回)。我非常确定在它上面调用.toString('dd/MM/yyyy HH:mm')
并没有真正做任何事情,你只需要恢复原来的字符串。那么接下来会发生什么:
new Date('20/11/2015 12:15')
这不是有效的日期格式。我并不熟悉Date.js,但也许您打算使用'dd/MM/yyyy HH:mm'
作为new Date()
的第二个参数,而不是toString()
的第一个参数?