我试图将格式为dd-mm-yyyy的字符串转换为JavaScript中的日期对象,使用以下方法:

 var from = $("#datepicker").val();
 var to = $("#datepickertwo").val();
 var f = new Date(from);
 var t = new Date(to);

("#datepicker").val()包含格式为dd-mm-yyyy的日期。 当我执行以下操作时,我得到“无效日期”:

alert(f);

这是因为“-”符号吗?我怎样才能克服这个问题呢?


当前回答

var from = $("#datepicker").val(); 
var f = $.datepicker.parseDate("d-m-Y", from);

其他回答

var from = $("#datepicker").val(); 
var f = $.datepicker.parseDate("d-m-Y", from);

另一种可能性:

var from = "10-11-2011"; 
var numbers = from.match(/\d+/g); 
var date = new Date(numbers[2], numbers[0]-1, numbers[1]);

匹配数字并重新排序

对我来说

new Date("20151102034013".replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/, "$1-$2-$3T$4:$5:$6"))

结果:2015年11月2日星期一04:40:13 GMT+0100(欧洲中部时间) 然后我使用.getTime()来处理毫秒

使用moment.js的例子:

var from = '11-04-2017' // OR $("#datepicker").val();
var milliseconds = moment(from, "DD-MM-YYYY").format('x');
var f = new Date(milliseconds)

let dateString = '13-02-2021' //日期字符串dd-mm-yyyy格式 let dateArray = dateString.split("-"); //dateArray[2] = 2021 //dateArray[1] = 02 //dateArray[0] = 13 //使用下面的模板文字 让dateObj = new日期(“$ {dateArray [2]} - $ {dateArray [1]} - $ {dateArray[0]}”); // dateObj等于2021年2月13日星期六05:30:00 GMT+0530(印度标准时间) //我来自印度,所以显示的是GMT+0530

附注:对于基本的MDN或DevDocs,一定要参考文档