gpt4 book ai didi

javascript - 检查 Javascript 中的日期和时间比较

转载 作者:行者123 更新时间:2023-11-28 06:24:07 25 4
gpt4 key购买 nike

我有 4 个文本框 用于日期,每个 文本框 都有一个 dropdownlist 用于时间。

现在我想要的是,

For each textbox date can be same but the timing should not be equal in all the dropdownlist.

例如:-

如果每个文本框中的日期是

textbox1: 08/02/2016
textbox2: 08/02/2016
textbox3: 08/02/2016
textbox4: 08/02/2016

时间不应该相同,应该相同

ddl1 = 9.00
ddl2 = 10.00
ddl3 = 11.00
ddl4 = 12.00

我尝试过如下:-

 function ValidateRecord() {
var StrPriError = "";
if (document.getElementById('TextBox1').value == document.getElementById('TextBox2').value || document.getElementById('TextBox3').value || document.getElementById('TextBox4').value) {
if (document.getElementById('DrpTime').value == document.getElementById('DrpTime3').value || document.getElementById('DrpTime4').value || document.getElementById('DrpTime5').value) {
StrPriError += "Dates and Time for RA Reminder cannot be same";
}
}
if (StrPriError != "") {
alert(StrPriError);
return false;
}
else {
return true;
}
}

但即使我添加不同的时间它也不起作用。请建议

另外,请参阅 HTML 的屏幕截图

Image1

更新

日期格式为dd/MM/yyyy

最佳答案

您检查时间的方式是错误的。此外,如果必须检查,则需要将所有这些都作为 Date 对象进行检查。

所以你需要这样做,假设这些是你的日期文本框:

  • 文本框1
  • TextBox2
  • TextBox3
  • TextBox4

时间是:

  • DrpTime
  • DrpTime3
  • DrpTime4
  • DrpTime5

现在,您需要创建四个 Date 对象,其中包含两者日期和时间。所以说:

var dt1 = new Date(document.getElementById('TextBox1').value + " " + document.getElementById('DrpTime').value);
var dt2 = new Date(document.getElementById('TextBox2').value + " " + document.getElementById('DrpTime3').value);
var dt3 = new Date(document.getElementById('TextBox3').value + " " + document.getElementById('DrpTime4').value);
var dt4 = new Date(document.getElementById('TextBox4').value + " " + document.getElementById('DrpTime5').value);

现在你需要比较是否有任何两个这样,你会得到 6 个比较:

dt1.getTime() == dt2.getTime()
dt1.getTime() == dt3.getTime()
dt1.getTime() == dt4.getTime()
dt2.getTime() == dt3.getTime()
dt2.getTime() == dt4.getTime()
dt3.getTime() == dt4.getTime()

因此,无效值的 if 条件为:

if (dt1.getTime() == dt2.getTime() || dt1.getTime() == dt3.getTime() || dt1.getTime() == dt4.getTime() || dt2.getTime() == dt3.getTime() || dt2.getTime() == dt4.getTime() || dt3.getTime() == dt4.getTime())
// Error

扩展后的(仅用于演示)是:

if (
dt1.getTime() == dt2.getTime() || dt1.getTime() == dt3.getTime() || dt1.getTime() == dt4.getTime() ||
dt2.getTime() == dt3.getTime() || dt2.getTime() == dt4.getTime() ||
dt3.getTime() == dt4.getTime()
)
// Error

我们正在比较所有日期,因此即使有一个条件成立,即一个日期也等于另一个日期,您也会得到结果,那么您需要告诉用户这是一个错误。

确保文本框中的日期值采用以下格式:

YYYY/MM/DD

如果没有,这将不起作用。

工作片段

label {display: block;}
Dates
<label>Date 1: <input type="date" id="TextBox1"></label>
<label>Date 2: <input type="date" id="TextBox2"></label>
<label>Date 3: <input type="date" id="TextBox3"></label>
<label>Date 4: <input type="date" id="TextBox4"></label>

Times
<label>Time 1: <input type="text" id="DrpTime"></label>
<label>Time 2: <input type="text" id="DrpTime3"></label>
<label>Time 3: <input type="text" id="DrpTime4"></label>
<label>Time 4: <input type="text" id="DrpTime5"></label>

<button onclick="calc8();">Calculate</button>

<script>
function calc8() {
var dt1 = new Date(document.getElementById('TextBox1').value + " " + document.getElementById('DrpTime').value);
var dt2 = new Date(document.getElementById('TextBox2').value + " " + document.getElementById('DrpTime3').value);
var dt3 = new Date(document.getElementById('TextBox3').value + " " + document.getElementById('DrpTime4').value);
var dt4 = new Date(document.getElementById('TextBox4').value + " " + document.getElementById('DrpTime5').value);
if (dt1.getTime() == dt2.getTime() || dt1.getTime() == dt3.getTime() || dt1.getTime() == dt4.getTime() || dt2.getTime() == dt3.getTime() || dt2.getTime() == dt4.getTime() || dt3.getTime() == dt4.getTime())
// Error
alert("Equal Times Detected");
else
alert("Good to go!");
}
</script>

说明

  1. 对所有内容使用相同的日期(例如 2 月 1 日,使用日期选择器)。
  2. 为所有人使用不同的时间(例如 1:002:003:004:00)。
  3. 点击按钮,它应该会显示“good to go”。

关于javascript - 检查 Javascript 中的日期和时间比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35269833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com