проблема форматирования времени JavaScript, когда час "12" - PullRequest
0 голосов
/ 09 июня 2018

У меня есть PDF-форма, в то время как она должна быть заполнена либо электронным способом, либо старой доброй ручкой.Как таковой, он включает в себя вычисления времени с «Time In» и «Time Out».Для упрощения форма включает опции для выбора «am» или «pm» соответственно.См. образец формы ввода

Так что я думаю, что придумал более умный способ, что при использовании в электронном виде я могу позволить пользователю вводить время в формате "h: MM" искомбинируйте выделение «am» или «pm», поместив результат в скрытое поле с форматом «h: MM tt» и выполнив соответствующий расчет времени.Результат в этом новом скрытом поле отлично работает во всех случаях, кроме «12: xx».Если вы выберете «pm», результат будет равным «0:00 am», а если вы выберете «am», он получит результат «12:00 pm».Я не могу понять, как с этим бороться.Вот код, который я использую для создания результата в скрытом поле:

//format for inputted time
var TimeFormat = "h:MM";
// field names
var str1Field = "TimeIn"
var str2Field = "TimeInTT"
// get field values
var str1 = this.getField(str1Field).value;
var str2 = this.getField(str2Field).value;
// concat strings if there is data
if(str1 != "" && str2 != ""){
var res = (TimeFormat, str1) + " " + str2;
event.value = res;
}

«TimeIn» - это поле времени «h: MM», а «TimeIn TT» - это «am» или «pm».».Любая помощь с этим очень ценится.Может быть, есть лучший способ сделать это?Спасибо.

1 Ответ

0 голосов
/ 15 июня 2018

Я нашел решение своей проблемы.Напомним, что проблема заключалась в том, что я пытался объединить поле, отформатированное как «h: MM», с опцией переключателя, предоставляющей «am» или «pm», и выводить результат в поле, отформатированное как «h: MM tt»."вышеупомянутый JavaScript будет работать все время, кроме полудня (12:00 вечера) и полуночи.(12:00 утра).После нескольких часов попыток сочетания вещей использование

event.value = res.replace("12:00", "0:00");

дало мне желаемый результат.Опять же, это была проблема только при расчете поля, отформатированного как «h: MM tt».Если бы это было просто текстовое поле, проблем не было.Однако мне нужно было, чтобы это было временное поле для дополнительных временных расчетов.Итак, готовый скрипт выглядит так после очистки:

 // field names
 var str1Field = "Day1Pd1TimeIn" //Text Field
 var str2Field = "Day1Pd1TimeInPeriod" //Radio Button
 // get field values
 var str1 = this.getField(str1Field).value;
 var str2 = this.getField(str2Field).value;
 // concat strings if there is data
 if(str1 != "" && str2 != "Off")
 {
 var res = str1 + " " + str2;
 event.value = res.replace("12:00", "0:00");
 }

Возможно, это поможет кому-то в будущем.

...