angular bootstrap日期选择器显示'yyyy-mm-dd'总体安排

angular-bootstrap date picker shows incorrect date for 'yyyy-mm-dd' format

本文关键字:yyyy-mm-dd bootstrap 显示 日期 angular 选择器      更新时间:2023-09-26

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

// Displays '2015-09-25', but 24th is selected
var date = '2015-09-25';
// Displays '2015-09-24', selects 24th
var date = new Date("2015-09-25");

来自javascript日期时区问题:"在javascript中,YYYY-MM-DD格式的值被解释为UTC值,而不是本地时间值。"

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

var s = "2015-09-25";
var dt = new Date(s.replace(/-/g, '/'));

不过我建议使用moment.js。它对我有效,我在javascript日期选择器方面也遇到了同样的问题。

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