2017-05-20 7 views
-1

2回の違いを知りたい。最初のものは現在の時間オブジェクトです。これはJavaScriptの日付オブジェクトを使用して取得しますnew Date() もう1つは「20:30」のような文字列です。 現在の時刻が18:00であれば、私はちょうどその「2時間30分のような違いが残って。助けのあらゆるタイプの 感謝したいとします。2回にどのように相違するのですか?

+0

私はあなたがここに質問を読むことができたと思います。 [date-diff-javascript](http://stackoverflow.com/questions/34386175/date-diff-javascript) – dawnfly

+2

[Javascriptの時間差を確認]の可能な複製(http://stackoverflow.com/questions/1787939)/check-time-difference-in-javascript) – mehulmpt

答えて

0

最も簡単/時刻を扱うことができるライブラリmoment.jsを使用することです日付操作も

+0

利用可能なjavascriptの日付関数を使用する方法はありますか? –

+0

@SKJajoriyaはい、もしあなたが望むなら、あなたは 'Date'で日付を解析することができます。例えば http://stackoverflow.com/questions/5619202/converting-string-to-date-in-js そして、ちょうど2つの日付を比較し、違いを得ます。 – rymdmaskin

0

以下のようにしてみてください。

var date1 = new Date(2000, 0, 1, 20, 30); 
var date2 = new Date(2000, 0, 1, 18, 0); 

var diff = date1-date2;//milli seconds 


var min = diff/1000/60; 
var r = min % 1; 
var h=min/60; 
var sec = Math.floor(r * 60); 
if (sec < 10) { 
    sec = '0'+sec; 
} 
    alert(min+'-'+ sec); 
0

あなたは時間差betweを取得する方法についてthis postに従った後、JavaScriptの日付時刻を取得するために、このようなDate.parse("1970 1 1 20:30")として文字列でDate.Parse()機能を使用することができます2つのjavascriptの日付オブジェクト。

希望すると便利です。

0

Dateオブジェクトで利用可能な機能を利用してください。ここで

var origTime = '20:30'.split(':'); 
var dateA = new Date(); 
dateA.setHours(origTime[0]); 
dateA.setMinutes(origTime[1]); 
var dateB = new Date(); 
var hourDiff = Math.abs(dateA - dateB)/36e5; 
0

だけバニラのJSを使用してそれを行うことができる方法である。

var compareDate = new Date(); 
var timeParts = "20:30".split(":"); 
compareDate.setHours(Number(timeParts[0])); 
compareDate.setMinutes(Number(timeParts[0])); 
compareDate.setSeconds(0); 
compareDate.setMilliseconds(0); 

var diff = compareDate - new Date(); 
var diffInMinutes = Math.floor(diff/1000/60); 
var hours = Math.floor(diffInMinutes/60); 
var minutes = diffInMinutes % 60; 

hours + " hours and " + minutes + " minutes left"; 

私たちは、これらを0に設定することにより、「正規化」秒とミリ秒だ、そうでない場合、彼らは時にしたものは何でもできるでしょうnew Date()が呼び出されました。

1

$(document).ready(function() { 
 
    function calculateTime() { 
 

 
    var valuestop = $("select[name='timestop']").val(); 
 

 
    var timeStart = new Date().getTime();//current time 
 
    var timeEnd = new Date(new Date().toJSON().slice(0, 10).replace(/-/g, '/') + ' ' + valuestop).getTime();//selected time 
 
    console.log(timeStart + ' ' + timeEnd); 
 
    var hourDiff = timeEnd - timeStart; //in ms 
 
    var secDiff = hourDiff/1000; //in s 
 
    var minDiff = hourDiff/60/1000; //in minutes 
 
    var hDiff = hourDiff/3600/1000; //in hours 
 
    var humanReadable = {}; 
 
    humanReadable.hours = Math.floor(hDiff); 
 
    humanReadable.minutes = Math.round(minDiff - 60 * humanReadable.hours); 
 
    console.log(humanReadable); //{hours: 0, minutes: 30} 
 
    $("p").html("Difference: <b>Hours: </b>" + humanReadable.hours + "<b>Minutes: </b>" + humanReadable.minutes); 
 
    } 
 
    $("select").change(calculateTime); 
 
    calculateTime(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<select name="timestop"> 
 
    <option value="00:00:00">12:00 am</option> 
 
    <option value="01:00:00">1:00 am</option> 
 
    <option value="02:00:00">2:00 am</option> 
 
    <option value="03:00:00">3:00 am</option> 
 
    <option value="04:00:00">4:00 am</option> 
 
    <option value="05:00:00">5:00 am</option> 
 
    <option value="06:00:00">6:00 am</option> 
 
    <option value="07:00:00">7:00 am</option> 
 
    <option value="08:00:00">8:00 am</option> 
 
    <option value="09:00:00">9:00 am</option> 
 
    <option value="10:00:00">10:00 am</option> 
 
    <option value="11:00:00">11:00 am</option> 
 
    <option value="12:00:00">12:00 pm</option> 
 
    <option value="13:00:00">1:00 pm</option> 
 
    <option value="14:00:00">2:00 pm</option> 
 
    <option value="15:00:00">3:00 pm</option> 
 
    <option value="16:00:00">4:00 pm</option> 
 
    <option value="17:00:00">5:00 pm</option> 
 
    <option value="18:00:00">6:00 pm</option> 
 
    <option value="19:00:00">7:00 pm</option> 
 
    <option value="20:00:00">8:00 pm</option> 
 
    <option value="21:00:00">9:00 pm</option> 
 
    <option value="22:00:00">10:00 pm</option> 
 
    <option value="23:00:00">11:00 pm</option> 
 
    </select> 
 

 
<p> </p>

関連する問題