gpt4 book ai didi

Javascript 12 小时到 24 小时格式转换器

转载 作者:行者123 更新时间:2023-11-29 18:33:11 29 4
gpt4 key购买 nike

有什么方法可以在 JS 中将 12 小时制时间格式转换为 24 小时制时间格式?我对 JavaScript 一点都不擅长,所以我仍然很惊讶我能做到这一点。

我想做的是将时间从 12 小时转换为 24 小时,这样我就可以进行比较,比如 endDate 是否大于 startDate,但我无法理解的是如何将我收到的 12 小时格式转换为有效的 24 小时格式。

$('#de_endTime').bind('blur', function()
{
sDate = $('#de_startDate').val();
startTime = $('#de_startTime').val();
endTime = $('#de_endTime').val();

if (startTime == ""){
alert("First input the start time");
$('#de_startTime').focus();
}

dSplit = sDate.split("-");
dYear = dSplit[0];
dMonth = dSplit[1] - 1;
dDay = dSplit[2];

stSplit = startTime.split(":");
stHour = stSplit[0];
stMin = stSplit[1].split(" ")[0];
stAmPm = stSplit[1].split(" ")[1];

etSplit = endTime.split(":");
etHour = etSplit[0];
etMin = etSplit[1].split(" ")[0];
etAmPm = etSplit[1].split(" ")[1];

fullStartDate = getDateObject(dYear, dMonth, dDay, stHour, stMin);
fullEndDate = getDateObject(dYear, dMonth, dDay, etHour, etMin);

if (fullStartDate - fullEndDate > 0){
alert("Start Time cannot be higher than End Time!");
}
});

这是 getDateObject() 函数

function getDateObject(year, month, day, hours, minutes) {
var newDate = new Date();
newDate.setFullYear(year);
newDate.setMonth(month);
newDate.setDate(day);

newDate.setHours(hours);
newDate.setMinutes(minutes);
newDate.setSeconds(0);
newDate.setMilliseconds(0);
return newDate;
}

我不确定我是否提供了足够的细节,但如果没有,请告诉我 :)谢谢:)

[编辑]新代码,到目前为止似乎输出一切正常:)

$('#de_endTime').bind('blur', function()
{
sDate = $('#de_startDate').val();
startTime = $('#de_startTime').val();
endTime = $('#de_endTime').val();

if (startTime == ""){
alert("First input the start time");
$('#de_startTime').focus();
}

dSplit = sDate.split("-");
dYear = dSplit[0];
dMonth = dSplit[1];
dDay = dSplit[2];

fullIsoDate = dMonth + "/" + dDay + "/" + dYear;
//alert(fullIsoDate);

var fullStartDate = new Date(startTime + ' ' + fullIsoDate);
var fullEndDate = new Date(endTime + ' ' + fullIsoDate);

alert(fullStartDate);
if (fullStartDate - fullEndDate > 0){
alert("Start Time cannot be higher than End Time!");
}
alert(fullEndDate > fullStartDate)
});

最佳答案

date对象可以直接比较,不关心12/24小时格式,所以把你的时间放在两个date对象中比较就可以了。

var dateOne = new Date('1:00 PM 1/1/1900');
var dateTwo = new Date('13:01 1/1/1900');

if(dateOne < dateTwo)
{
alert('DateOne is before DateTwo');
} else {
alert('DateOne is after DateTwo');
}

您会看到一个警告框,提示 DateOne 在 DateTwo 之前

关于Javascript 12 小时到 24 小时格式转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5719547/

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