Javascript 角度引导日期选择器为';yyyy-mm-dd';格式

Javascript 角度引导日期选择器为';yyyy-mm-dd';格式,javascript,angularjs,date,datepicker,angular-bootstrap,Javascript,Angularjs,Date,Datepicker,Angular Bootstrap,我们正在以yyyy-mm-dd的格式存储出生日期。当此格式提供给日期选择器时,它会在弹出窗口中选择不正确的日期。将其转换为日期对象会导致显示和选择不正确。例如(忽略验证内容,这是另一个问题) From:“在JavaScript中,YYYY-MM-DD格式的值被解释为UTC值,而不是本地时间值。” 一种解决方法是用斜杠替换连字符: var s = "2015-09-25"; var dt = new Date(s.replace(/-/g, '/')); 不过我还是建议使用。它适用于我,我在使用

我们正在以
yyyy-mm-dd
的格式存储出生日期。当此格式提供给日期选择器时,它会在弹出窗口中选择不正确的日期。将其转换为日期对象会导致显示和选择不正确。例如(忽略验证内容,这是另一个问题)

From:“在JavaScript中,YYYY-MM-DD格式的值被解释为UTC值,而不是本地时间值。”

一种解决方法是用斜杠替换连字符:

var s = "2015-09-25";
var dt = new Date(s.replace(/-/g, '/'));
不过我还是建议使用。它适用于我,我在使用javascript日期选择器时也遇到了同样的问题

var s = "2015-09-25";
var dt = moment(s, 'YYYY-MM-DD').toDate();

问题是时区。该模型使用的是
UTC
时区-但所选日期使用的是本地时区。与其链接到其他答案,不如将问题标记为重复项+1,以使用矩.js解析日期。执行此操作时,请确保传递特定的格式字符串:
moment(str,fmt)
。这是关键。来自:“警告:浏览器对解析字符串的支持不一致。因为没有关于应支持哪些格式的规范,在某些浏览器中有效的内容在其他浏览器中不起作用。/ISO 8601字符串以外的任何内容解析的一致结果,应使用字符串+格式。”
var s = "2015-09-25";
var dt = moment(s, 'YYYY-MM-DD').toDate();