27

「HH:MM」の形式で 2 つの時刻があります。それらを比較したいのですが、次のコードを使用して現在の時刻を自分の形式で取得します。

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;

そして、このコードは、GMT差を差し引いた後の時間を取得することです:

d = new Date()
var n = d.getTimezoneOffset();
var n1 = Math.abs(n);
var difference = (n1/60); 
my_time = my_time - (0+difference);

ここで、my_time の値を match_time の値と比較する必要があります。

match_time = 10:00;//for example
if(my_time > match_time)
{
  alert('yes');
}
else
{
  alert('No');
}

これらの値が文字列である場合、それらの値を時間として比較するにはどうすればよいですか???

4

7 に答える 7

30

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");
}
于 2015-01-05T17:16:30.063 に答える
2

@Gabo Esquivel ソリューションに投票するのに十分な担当者がいた場合。何日もの間、解決策を検索してテストしてきましたが、これが唯一の解決策でした。

現在の時刻が 0830 であるかどうかをテストする条件ステートメントが必要で、その場合は何かを実行します。if ステートメントが機能していなかったため、他の例を使用する必要がありました。

//Business Hours: Saturday 8:30am-12pm; highlight Saturday table row.
function showSaturdayHours() {
    var today = new Date();
    var weekday = today.getDay();
    var saturdayOpen = new Date();
    saturdayOpen.setHours(8, 30, 0);
    var saturdayClose = new Date();
    saturdayClose.setHours(12, 0, 0);

if (weekday == 6) {
    $('#saturday-row').addClass('row-blue'); //highlight table row if current day is Saturday.
    if (today >= saturdayOpen && today < saturdayClose) {
        document.getElementById('saturday-open').innerHTML = 'Open';
    } else {
        document.getElementById('saturday-open').innerHTML = 'Closed';
    }
  }
}

営業時間表:JSFiddle

于 2015-05-21T16:23:14.773 に答える
2
 if(Date.parse('01/01/2011 10:20:45') == Date.parse('01/01/2011 5:10:10')) {
  alert('same');
  }else{

  alert('different');

  }

1 月 1 日は任意の日付であり、何の意味もありません。

于 2013-10-08T15:59:35.793 に答える