Я работаю над унаследованной системой, и в DB день рождения идет таким образом "1992-05-18" в json. Я использую 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'
Как я могу решить эту проблему через Front End элегантным способом, не "сломав" двустороннюю привязку данных?
Я UTC -03:00
в Бразилию UTC -03:00
Есть несколько способов решить эту проблему. Быстрое и грязное решение может заключаться в том, чтобы использовать moment.js. Таким образом вы можете преобразовать ответ API в настоящий формат даты.
Если вы не хотите использовать дополнительную библиотеку, вы можете сделать функцию для синтаксического анализа строки даты. Вы можете сделать следующее для синтаксического анализа, чтобы стать правильной датой:
var dateSplit = person.birthday.split('-');
var mydate = new Date(dateSplit[0], dateSplit[1] - 1, dateSplit[2]);
person.birthday= mydate;
Обратите внимание, что индекс месяца начинается с 0 (aka January = 0). Надеюсь, это поможет.
new Date('1992-04-26')
результатом будет дата для '1992-04-26T00: 00: 00.000Z'. Если рассматривать его как UTC, местные даты будут сдвигаться только на смещение часового пояса хоста (очевидно, -0300), которое будет «1992-04-25T21: 00: 00.000-0300».