Как обрезать значение строки штампа - PullRequest
0 голосов
/ 09 октября 2018

У меня есть требование в моей кодовой базе, где мне нужно обрезать временную метку, если она имеет часовой пояс.

Пример временной метки, которую я могу получить:

"2017/08/23 12:00:00 Z" или "2017/08/23 12:00:00 +05:30 "

Мой желаемый результат должен быть:

" 2017/08/23 12:00:00 "или" 2017/08/23 12:00: 00 "

Ответы [ 3 ]

0 голосов
/ 09 октября 2018

Вы можете сделать что-то вроде этого:

var d1 = "2017/08/23 12:00:00 Z"
var d2 = "2017/08/23 12:00:00 +05:30"
var d3 = "2017/08/23 12:00:00"

const getDatePart = d => d.split(' ').reduce((r,c,i) => i <= 1 ? `${r} ${c}` : r)

console.log(getDatePart(d1))
console.log(getDatePart(d2))
console.log(getDatePart(d3))

Это выполнит работу через String.split & reduce.Он будет покрывать строки даты одним ' ' между датой и временем.

0 голосов
/ 10 октября 2018

Предполагая, что вы обрабатываете одну дату и время, вы можете использовать это регулярное выражение:

/(?<=\").*?(?:(?=Z)|(?=[+-]))/

Оглядываясь назад, вы обнаруживаете двойное quote, а затем соответствует любому символу ноль или более раз (не жадный)затем он ожидает либо 'Z', либо плюс [+], либо минус [-].

0 голосов
/ 09 октября 2018

Используйте метод lastIndexOf, чтобы найти последний пробел и подстроку к нему.

var date = "2017/08/23 12:00:00 Z";
var date1 = "2017/08/23 12:00:00 +05:30";


console.log(date.substring(0, date.lastIndexOf(" ")));
console.log(date1.substring(0, date.lastIndexOf(" ")));
...