Разница между 2 раза, используя момент JS

1

Привет всем, кому нужна помощь с моментом js, у меня есть поле ввода "Старт", а другое - "stop"

start = moment().format('LT'); // works when i click on the play button
stop  = moment().format('LT'); // works when i focus on the counter input beside the play button --> for test

Я хочу изменить поле ввода начала вручную, чтобы я хотел, чтобы функция проверки принимала входное значение и проверяла, является ли вход действительным или нет в этой форме LT для ex: когда я удаляю значение ввода, которое составляет 6:39 PM как 6:02:00 PM or 1:00 PM or ниже на картинке и типе, например, 6:02:00 PM or 1:00 PM or добавить строку 5:dfds2 PM Я хочу, чтобы консоль записывала любое сообщение об ошибке and return the previous value to the input again когда я удаляю текущее значение и добавить число, подобное "1, например" без am or pm чтобы он определял, есть ли число до или после значения остановки, и введите в поле ввода, например, 1:00 AM or 1:00PM я использовал эту функцию для проверки исходного поля ввода, но это дает мне неправильные ответы

function validate(inputVal) {
  let temp =this.startTime;
  let x = temp;
  if(moment(inputVal, "hh:mm").isValid()) {
    x= moment(inputVal, "HH:mm").format('hh:mm A');
    console.log("inputVal is: " + inputVal + " and x is: " + x);
    this.startTime = x
  } else {
    this.startTime = "temp";
    console.log("no");
  }
}  

вот фото Изображение 174551 для получения дополнительной информации u можете посетить сайт toggl, моя идея взята оттуда какая-нибудь помощь?! спасибо заранее

  • 0
    Вы проверяете, действительно ли val в этой строке: moment(val, "hh:mm").isValid() . Вы хотите проверить свой inputVal ?
  • 0
    @enjoylife да, конечно, здесь val == inputVal я обновил свой вопрос, спасибо.
Теги:
momentjs

1 ответ

1
Лучший ответ

Я пошел вперед и немного очистил вашу функцию, уменьшил логику, теперь вы должны просто убедиться, что формат момента - это то, что вы ищете

function validate(val) {
    let parsedTime = moment(val, "hh:mm");
    if (parsedTime.isValid()) {
        this.startTime =  parsedTime.format('hh:mm A');
    } 
}  
  • 0
    THX, но когда я 5:bgb2 как это точно 5:bgb2 ввод 5:bgb2 05:02 AM что не правильно, потому что есть bgb который сделал ввод неверным, или даже когда я bgb 5:10: он также заменяет поле ввода с этим значением это не верны какие-либо идеи, еще одна вещь во втором условии, else я хочу взять начальное значение, например, для 1:25 Am и если я записал в поле ввода любое недопустимое значение, он возвращает 1:25 Am обратно на вход снова не t temp значение.
  • 0
    спасибо, но не могли бы вы прочитать выше комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню