Создать дату из строки в формате ISO - PullRequest
0 голосов
/ 20 сентября 2019

Моя функция получает дату в строковом формате как «2019-09-20T04: 30: 01Z».Я хочу преобразовать это в начало дня.Ожидаемый результат: «2019-09-20T00: 00: 00Z».

Объект Date () дает мне дату вместе с часовым поясом, на котором, если я сделаю setHours (0), результирующий объект будет '2019-09-19 .... '

Ответы [ 3 ]

2 голосов
/ 20 сентября 2019

Вы можете просто взять дату и добавить нулевую часть времени.

var string = '2019-09-20T04:30:01Z',
    result = string.slice(0, 10) + 'T00:00:00Z';

console.log(result);
1 голос
/ 20 сентября 2019

Вы можете попробовать использовать .match() вместо Date() object

const date = '2019-09-20T04:30:01Z';
let res = (date.match(/^\d{4}\-\d{2}\-\d{2}T/) || [null])[0]
res && (res += '00:00:00Z')
console.log(res)
0 голосов
/ 20 сентября 2019

Существует множество способов изменить строку:

let s = '2019-09-20T04:30:01Z';

console.log(s.split('T')[0] + 'T00:00:00Z');
console.log(s.replace(/T.*/,'T00:00:00Z'));
console.log(s.substr(0,11) + '00:00:00Z');
console.log(s.substring(0,11) + '00:00:00Z');
console.log(s.slice(0,11) + '00:00:00Z');

Если вы хотите использовать дату (которая не кажется необходимой), то обнулите часы UTC и используйте toISOString , но вынужно удалить миллисекунды, если они вам не нужны:

let s = '2019-09-20T04:30:01Z';
let d = new Date(s);

d.setUTCHours(0,0,0,0);
console.log(d.toISOString().replace('.000',''));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...