У меня есть строка, как этотDetect даты между строками и временем с помощью momentjs
Occurs every 1 weeks on Sunday, Monday, Tuesday, Wednesday, Thursday, Friday and Saturday effective 2015-07-23T00:00:00 from T16:00:00 to T17:00:00
Вы можете видеть, как я получил слова, время и дату. Мне нужно применять форматы к датам и времени, а интернационализация - к строкам.
код работает как этот
var result = '';
// get values as an array
var arrValue = value.split(' '), resultArr = [];
// iterate in each element
for (var i = 0; i < arrValue.length; i++) {
// validate is a date
if (moment(arrValue[i], moment.ISO_8601).isValid() && (arrValue[i].indexOf('T') != -1)) {
// push into array
resultArr.push(moment(arrValue[i]).format('L'));
// validate is a time
} else if (moment('0001-01-01' + arrValue[i], moment.ISO_8601).isValid() && (arrValue[i].indexOf('T') != -1)) {
// push as a result the date
resultArr.push(moment('0001-01-01' + arrValue[i]).format('LT'));
} else {
// push the string in the collection
resultArr.push(sgI18NService.translate(['portfolio', 'activity-recurrence-field-' + arrValue[i]], arrValue[i]));
}
}
которой он работает нормально (тогда я присоединяюсь строки). Проблема заключается в том, что в IE не работает должным образом, чтобы распознавать некоторые строки, и это сбивает с толку их в качестве даты, например, после того, как я разделить строки, которые я получил каждый день в виде строки, и когда я оцениваю
moment('0001-01-01Thursday,', moment.ISO_8601).isValid()
I получить false в Chrome (это нормально, поскольку четверг - это строка, а не дата), но в IE я верю. Я проверил, и это похоже, что превращает эту неверную дату минимальной даты
Tue Jan 01 1901 00:00:00 GMT-0500
Этот пример был при оценке второй если. У меня есть проблема получения правильных дат с четверга и со вторника. Что я делаю неправильно? Как я могу разделить строки от дат и от времени в IE?
Редактировать: Строки ограничены, у меня есть другая комбинация строк, но они не введены пользователем.
, возможно, вы хотите пространство там? '...- 01 четверг'? '01Thursday' не имеет большого смысла. –
Мне нужно это, чтобы распознать время, потому что для чего-то вроде этого 'T17: 00: 00' Я бы имел' 0001-01-01T17: 00: 00', который действителен (который будет распознавать его как время), но '0001- 01-01 T17: 00: 00' нет (так что я не буду знать, если его время или строка) –
хорошо, есть проблема. если вы не можете сказать, что именно, как вы можете ожидать от JS-двигателя? у него есть довольно приличная эвристика, но это не «умный» ... –