Calculate Time Difference with JavaScript

后端 未结 12 1123
有刺的猬
有刺的猬 2020-12-01 13:20

I have two HTML input boxes, that need to calculate the time difference in JavaScript onBlur (since I need it in real time) and insert the result to new input box.

F

12条回答
  •  萌比男神i
    2020-12-01 13:37

    Well this work almost great. Now use this code to calculate: 23:50 - 00:10 And see what you get.Or even 23:30 - 01:30. That's a mess. Because getting the answer the other way in php is:

    $date1 = strtotime($_POST['started']);
    $date2 = strtotime($_POST['ended']);
    $interval = $date2 - $date1;
    $playedtime = $interval / 60;
    

    But still, it works like yours. I guess have to bring in the dates aswell?

    And again: My hard research and development helped me.

    if (isset($_POST['calculate'])) {
    $d1 = $_POST['started'];
    $d2 = $_POST['ended'];
    if ($d2 < $d1) {
        $date22 = date('Y-m-');
        $date222 = date('d')-1;
        $date2 = $date22."".$date222;
    } else {
    $date2 = date('Y-m-d');
    }
    $date1 = date('Y-m-d');
    $start_time = strtotime($date2.' '.$d1);
    $end_time = strtotime($date1.' '.$d2); // or use date('Y-m-d H:i:s') for current time
    $playedtime = round(abs($start_time - $end_time) / 60,2);
    }
    

    And that's how you calculate time over to the next day. //edit. First i had date1 jnd date2 switched. I need to -1 because this calculation only comes on next day and the first date vas yesterday.

    After improving and a lot of brain power with my friend we came up to this:

    $begin=mktime(substr($_GET["start"], 0,2),substr($_GET["start"], 2,2),0,1,2,2003);
    $end=mktime(substr($_GET["end"], 0,2),substr($_GET["end"], 2,2),0,1,3,2003);
    $outcome=($end-$begin)-date("Z");
    $minutes=date("i",$outcome)+date("H",$outcome)*60; //Echo minutes only
    $hours = date("H:i", $outcome); //Echo time in hours + minutes like 01:10 or something.
    

    So you actually need only 4 lines of code to get your result. You can take only minutes or show full time (like difference is 02:32) 2 hours and 32 minutes. What's most important: Still you can calculate overnight in 24 hour clock aka: Start time 11:50PM to let's say 01:00 AM (in 24 hour clock 23:50 - 01:00) because in 12 hour mode it works anyway.

    What's most important: You don't have to format your input. You can use just plain 2300 as 23:00 input. This script will convert text field input to correct format by itself. Last script uses standard html form with method="get" but you can convert it to use POST method as well.

提交回复
热议问题