如何以优雅的方式并使用 JavaScript 解决 UTC 问题,该问题在实例化格式为"2018-10-25"的日期时减去一天?



我正在开发遗留系统,在数据库中,生日以 json 中的"1992-05-18"方式到来。我正在使用 AngularJS,当在更新表单的input type = "date"中应用此变量的数据绑定时,有必要实例化一个 Date 对象。喜欢这个:

//person.byrthday = '1992-04-26'
var person.birthday = new Date (person.birthday); 
// after person.byrthday = '1992-04-25T00:00:00.000Z'

如何通过前端优雅地解决这个问题,而不"破坏"双向数据绑定?

我发现自己在巴西UTC -03:00

有几种方法可以解决这个问题。一个快速而肮脏的解决方案可能是利用时刻.js。您可以通过这种方式将来自 API 的响应转换为真正的日期格式。

如果您不想使用额外的库,则可以创建一个函数来解析日期字符串。您可以执行以下操作来解析成为正确的日期:

var dateSplit = person.birthday.split('-');
var mydate = new Date(dateSplit[0], dateSplit[1] - 1, dateSplit[2]); 
person.birthday= mydate;

请注意,月份指数从 0(又名 1 月=0(开始。希望这有所帮助。

相关内容

最新更新