Bas*_*sel 12 javascript string time casting date
我有两次格式"HH:MM"我想比较它们我有以下代码来获取我的格式的时间:
current_time = new Date();
hour = current_time.getHours();
minute = current_time.getMinutes();
if(hour<10){hour='0'+hour} if(minute<10){minute='0'+minute}
my_time = hour+':'+minute;
Run Code Online (Sandbox Code Playgroud)
这段代码是为了在减去GMT差异后得到时间:
d = new Date()
var n = d.getTimezoneOffset();
var n1 = Math.abs(n);
var difference = (n1/60);
my_time = my_time - (0+difference);
Run Code Online (Sandbox Code Playgroud)
现在应该将my_time的值与match_time的值进行比较:
match_time = 10:00;//for example
if(my_time > match_time)
{
alert('yes');
}
else
{
alert('No');
}
Run Code Online (Sandbox Code Playgroud)
如何将这些值作为字符串的时间进行比较?
Igo*_*kin 30
假设您对时区不感兴趣,只需要比较 24 小时时间格式的两个格式化时间字符串,则只需比较字符串即可。
let time1 = '09:12';
let time2 = '12:22';
if (time1 > time2) {
alert('yes')
} else {
alert('no')
}
Run Code Online (Sandbox Code Playgroud)
它之所以有效,是因为 JS 中的字符串是逐个符号进行比较的。所以在比较时,'09:12' > '12:22'
JS首先检查是否'0' == '1'
为 false '0' > '1'
,然后返回结果。
对于字符串比较'01' > '02'
,它将检查是否'0' == '0'
然后跳到两个字符串中的下一个符号并比较'1' > '2'
哪个为假。
字符串必须标准化为 hh:mm,否则你会得到意想不到的结果,例如:
"9:12" > "12:22" //true
Run Code Online (Sandbox Code Playgroud)
Gab*_*vel 14
使用Date对象.Date.setHours()允许您指定小时,分钟,秒
var currentD = new Date();
var startHappyHourD = new Date();
startHappyHourD.setHours(17,30,0); // 5.30 pm
var endHappyHourD = new Date();
endHappyHourD.setHours(18,30,0); // 6.30 pm
console.log("happy hour?")
if(currentD >= startHappyHourD && currentD < endHappyHourD ){
console.log("yes!");
}else{
console.log("no, sorry! between 5.30pm and 6.30pm");
}
Run Code Online (Sandbox Code Playgroud)
Date.parse('25/09/2013 13:31') > Date.parse('25/09/2013 9:15')
Run Code Online (Sandbox Code Playgroud)
编辑:
请注意,您正在解析您不感兴趣的任意日期,它只需要在双方相同。