Size: a a a

Angular - русскоговорящее сообщество

2020 June 01

VN

Viktor Novikov in Angular - русскоговорящее сообщество
Вертихвост キバ 🏡🦊
У stringify есть параметр replacer, через него можно указывать кастомную логику для сериализации: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

Но скорее всего, вам просто надо правильно организовать работу с тайм зонами в приложении. Посмотрите, во что именно конвертируется дата.
ну вот тут всё нормально конвертируется, а где именно можно эту работу с тайм зонами можно настроить?  Гугл чёт не помог
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Viktor Novikov
ну вот тут всё нормально конвертируется, а где именно можно эту работу с тайм зонами можно настроить?  Гугл чёт не помог
Там пример есть.
function replacer(key, value) {
 // Filtering out properties
 if (typeof value === 'string') {
   return undefined;
 }
 return value;
}

var foo = {foundation: 'Mozilla', model: 'box', week: 45, transport: 'car', month: 7};
JSON.stringify(foo, replacer);
// '{"week":45,"month":7}'


Но вообще нужна дата со временем или просто дата?
источник

VN

Viktor Novikov in Angular - русскоговорящее сообщество
Oleg Safonov
Там пример есть.
function replacer(key, value) {
 // Filtering out properties
 if (typeof value === 'string') {
   return undefined;
 }
 return value;
}

var foo = {foundation: 'Mozilla', model: 'box', week: 45, transport: 'car', month: 7};
JSON.stringify(foo, replacer);
// '{"week":45,"month":7}'


Но вообще нужна дата со временем или просто дата?
просто дата
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Для всего приложения чтоб сделать, можно сделать функцию типа 'JsonToString' и внутри вызывать JSON.stringify с функцией replacer.
источник

VN

Viktor Novikov in Angular - русскоговорящее сообщество
Oleg Safonov
Там пример есть.
function replacer(key, value) {
 // Filtering out properties
 if (typeof value === 'string') {
   return undefined;
 }
 return value;
}

var foo = {foundation: 'Mozilla', model: 'box', week: 45, transport: 'car', month: 7};
JSON.stringify(foo, replacer);
// '{"week":45,"month":7}'


Но вообще нужна дата со временем или просто дата?
просто немного странно, что она не хочет конвертироваться корректно, проблема на ровном месте
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Но вообще можно перед переводом в строку заменить объект даты на строку с датой, без времени.
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Viktor Novikov
просто немного странно, что она не хочет конвертироваться корректно, проблема на ровном месте
Она корректно работает но с учётом часового пояса
источник

VN

Viktor Novikov in Angular - русскоговорящее сообщество
Oleg Safonov
Для всего приложения чтоб сделать, можно сделать функцию типа 'JsonToString' и внутри вызывать JSON.stringify с функцией replacer.
ваще проблема ещё в том, что там где JSON.stringify вызывается, этот код генерит swagger и там любые изменения какбэ будет затираться...
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Viktor Novikov
ваще проблема ещё в том, что там где JSON.stringify вызывается, этот код генерит swagger и там любые изменения какбэ будет затираться...
Непонятно ничего). Зачем сваггеру даты конкретные? Примеры какие что ли?
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Можете вместо даты отдать ему строку вида "2020-12-31" и работать с ней, чтоб не заморачиваться со временем и часовыми поясами
источник

VN

Viktor Novikov in Angular - русскоговорящее сообщество
Oleg Safonov
Непонятно ничего). Зачем сваггеру даты конкретные? Примеры какие что ли?
ну обычная фигня, я с компонента просто кидаю объект(в нём соответственно есть и поля с датами) в метод  api, который сгенерил swagger, а в этом методе он перед отправкой делает  JSON.stringify
источник

VN

Viktor Novikov in Angular - русскоговорящее сообщество
Viktor Novikov
ну обычная фигня, я с компонента просто кидаю объект(в нём соответственно есть и поля с датами) в метод  api, который сгенерил swagger, а в этом методе он перед отправкой делает  JSON.stringify
и все дата становятся меньше)
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Viktor Novikov
и все дата становятся меньше)
Вы понимаете же, почему дата меньше становится?)
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Viktor Novikov
ну обычная фигня, я с компонента просто кидаю объект(в нём соответственно есть и поля с датами) в метод  api, который сгенерил swagger, а в этом методе он перед отправкой делает  JSON.stringify
Откуда поля берутся? Если с датапикера какого нибудь, ему можно передать параметрами timezone обычно
источник

VN

Viktor Novikov in Angular - русскоговорящее сообщество
Oleg Safonov
Вы понимаете же, почему дата меньше становится?)
из-за часовых поясов, но как сделать шоб они не играли роли?
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Viktor Novikov
из-за часовых поясов, но как сделать шоб они не играли роли?
всегда работать с датой с нулевым часовым поясом
источник

VN

Viktor Novikov in Angular - русскоговорящее сообщество
Oleg Safonov
Откуда поля берутся? Если с датапикера какого нибудь, ему можно передать параметрами timezone обычно
ну почти с него,  p-calendar  prime ng
источник

VC

Vlad Chabanenko in Angular - русскоговорящее сообщество
Oleg Safonov
всегда работать с датой с нулевым часовым поясом
Не все дейтпикеры так могут, возвращают локалку, или я туплю
источник

OS

Oleg Safonov in Angular - русскоговорящее сообщество
Vlad Chabanenko
Не все дейтпикеры так могут, возвращают локалку, или я туплю
да, не всегда, но по идее должны. Может есть какой то callback на проставление даты
источник

VC

Vlad Chabanenko in Angular - русскоговорящее сообщество
Я обычно обрезаю таймзону и добавляю 'Z' к дате в сервисе
источник