Удаление символов условно с определенной позиции в Javascript - PullRequest
0 голосов
/ 22 марта 2019

Это мой формат данных:

 "21/03/2019 19:18"

Проблема, с которой я сталкиваюсь, заключается в том, что когда я сталкиваюсь с датой или временем, возникает проблема с месяцем (вместо 3 вместо 3),Я использую библиотеку под названием date-fns .А также я попытался с помощью объектов даты javascript без использования библиотеки, но, к счастью, месяц не должен начинаться с нуля.

Итак, как убрать «0» передиз «3», и еще одна проблема заключается в том, как сделать это условно, потому что когда его декабрь, я буду получать данные как «21/12/2019 19:18».Таким образом, в этом случае я не должен удалять «1», поскольку он расположен в той же позиции, что и «0» в предыдущем сценарии.

Другими словами, я хочу удалить «0», проверяя, есть ли «1 "представлен в этой позиции или индексе, если представлен, тогда удалите, иначе удалите" 0 "

Как этого добиться.

Я попробовал следующий код:

 const d = new Date(2019,03,21)

Но, это говорит об устаревшей ошибке.Поэтому, когда я удалил "0" перед "3", он работает нормально.Пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Вы сказали, что используете date-fns, поэтому я дам ответ по этому поводу.

Текущая версия 1.x не поддерживает синтаксический анализ строк в произвольном формате, но они добавляют это в 2.x, и вы можете использовать альфа-релиз, чтобы попробовать его сегодня.

Синтаксис:

var date = parse(dateString, formatString, baseDate, [options]);

См. Документацию для функции parse в версии 2.0.0-alpha.27.

В вашем случае это было бы так:

var date = parse("21/03/2019 19:18", "MM/dd/yyyy HH:mm", new Date());

Наконец, если вы хотите использовать библиотеку для этого, но не хотите экспериментировать с альфой, вы можете либо подождать, пока Date-fns 2.0 станет финальным, либо вы можете попробовать Luxon или Момент - оба из них уже имеют эту функциональность (хотя Момент использует немного другой формат токена "MM/DD/YYYY HH:mm").

0 голосов
/ 22 марта 2019

Я полагаю, вы вернули данные в виде строки и хотите просто удалить начальные нули только со 2-го числа?

мы можем использовать .split, чтобы разбить строку на части, а затем мы можем использовать parseInt, чтобы преобразовать некоторые части строки в числа. который превратит строку "03" в число 3

function removeleadingZerosFromDateString(str) {
   //Break up the date string on the slashes and whitespace, so we have an array of all the parts
   var parts = str.split(/\/|\s/);
   console.log(parts);

   //Assign each array item to a variable so we can see what is what
   var day = parseInt(parts[0], 10);
   var month = parseInt(parts[1], 10);
   var year = parts[2];
   var time = parts[3];
   var meridian = parts[4];
 
   return day+'/'+month+'/'+year+' '+time+' '+meridian;
 }

var result = removeleadingZerosFromDateString("21/03/2019 19:18 PM");
 console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...