javascript 小时为“12”时的时间格式问题
javascript time formatting issue when hour is "12"
我有一个 PDF 表格,但它需要能够以电子方式或使用老式钢笔填写。因此,它包括使用 "Time In" 和 "Time Out" 的时间计算。为简化起见,该表格相应地包括 select "am" 或 "pm" 的选项。看
form entry sample
所以我想我想出了一个切肉方法,如果以电子方式使用,我可以允许用户以 "h:MM" 格式输入时间并连接 "am" 或 "pm" selection 将结果放入 "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"。非常感谢对此的任何帮助。也许有更好的方法吗?谢谢。
我找到了解决问题的办法。回顾一下,问题是当我试图将格式为 "h:MM" 的字段与提供 "am" 或 "pm" 的单选按钮选项连接并将结果输出到格式为 "h:MM tt",上面的 JavaScript 将适用于除中午 (12:00 pm) 和午夜以外的所有时间。 (12:00 AM)。经过数小时的组合尝试,使用
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");
}
也许这对以后的人有帮助。
我有一个 PDF 表格,但它需要能够以电子方式或使用老式钢笔填写。因此,它包括使用 "Time In" 和 "Time Out" 的时间计算。为简化起见,该表格相应地包括 select "am" 或 "pm" 的选项。看 form entry sample
所以我想我想出了一个切肉方法,如果以电子方式使用,我可以允许用户以 "h:MM" 格式输入时间并连接 "am" 或 "pm" selection 将结果放入 "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"。非常感谢对此的任何帮助。也许有更好的方法吗?谢谢。
我找到了解决问题的办法。回顾一下,问题是当我试图将格式为 "h:MM" 的字段与提供 "am" 或 "pm" 的单选按钮选项连接并将结果输出到格式为 "h:MM tt",上面的 JavaScript 将适用于除中午 (12:00 pm) 和午夜以外的所有时间。 (12:00 AM)。经过数小时的组合尝试,使用
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");
}
也许这对以后的人有帮助。