Вычтите время из выбранных пользователем значений, используя Java Script - PullRequest
0 голосов
/ 21 мая 2018

Мне было интересно, есть ли способ вычесть время из выбора пользователей на несколько часов.Другими словами, если пользователь выбирает 1:00 AM , результатом будет 11:00 PM .Я начинаю это делать, но я застрял ...

function myFunction() {
  var hour = document.getElementById("selectHour").value;
  var minute = document.getElementById("selectMinute").value;
  var ampm = document.getElementById("selectAMPM").value;
  document.getElementById("result").innerHTML = hour + ":" + minute + " " + ampm;
}
<select id="selectHour">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
  <option value="11">11</option>
  <option value="12">12</option>
</select>

<select id="selectMinute">
  <option value="00">00</option>
  <option value="5">5</option>
  <option value="10">10</option>
  <option value="15">15</option>
  <option value="20">20</option>
  <option value="25">25</option>
  <option value="30">30</option>
  <option value="35">35</option>
  <option value="40">40</option>
  <option value="45">45</option>
  <option value="50">50</option>
  <option value="55">55</option>
</select>

<select id="selectAMPM">
    <option value="am">am</option>
    <option value="pm">pm</option>
</select>
  
<button onclick="myFunction()">Calculate</button>

<p id="result"></p> 

Ответы [ 3 ]

0 голосов
/ 21 мая 2018

Вы можете сделать это, преобразовав свое время в 24-часовой формат, а затем обрабатывать логику для am / pm отдельно. jsfiddle

    function myFunction() {
  var hour = document.getElementById("selectHour").value;
  var minute = document.getElementById("selectMinute").value;
  var ampm = document.getElementById("selectAMPM").value;

    var hourin24hourformat = hour;

  if(ampm === 'pm'){
        hourin24hourformat = (+hourin24hourformat)+12;
    }
  hourin24hourformat = hourin24hourformat-2;

     ampm='am';
    if(hourin24hourformat==0){ //At 00 hours we need to show 12 am
    hourin24hourformat=12;
    }
    else if(hourin24hourformat>12)
    {
    hourin24hourformat=hourin24hourformat%12;
    ampm='pm';
    }else if(hourin24hourformat === 12){
     ampm='pm';
    }

  document.getElementById("result").innerHTML = hourin24hourformat + ":" + minute + " " + ampm;
}
0 голосов
/ 21 мая 2018

Попробуйте это работает

function myFunction() {
    var hour = document.getElementById("selectHour").value;
    var minute = document.getElementById("selectMinute").value;
    var ampm = document.getElementById("selectAMPM").value;
    hour = parseInt(hour);
    if(hour<12 && ampm=='am')
    {
      hour=hour+12-2;
      if(hour==12)
      {
        ampm='am';
      }
      else if(hour>12)
      {
        hour=hour-12;
        ampm='am';
      }
      else{
      ampm='pm';
    }
  }
    else if(hour<12 && ampm=='pm'){
      hour=hour+12-2;
      if(hour==12)
      {
        ampm='pm';
      }
      else if(hour>12)
      {
        hour=hour-12;
        ampm='pm';
      }
      else{
      ampm='am';
    }
  }
    else if(hour==12 && ampm=='am')
    {
      hour=hour-2;
      ampm='pm';
    }
    else if(hour==12 && ampm=='pm')
    {
      hour=hour-2;
      ampm='am';
    }
    document.getElementById("result").innerHTML = hour + ":" + minute + " " + ampm;
}
<html>
<head></head>
<body>
<select id="selectHour">
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
  <option value="5">5</option>
  <option value="6">6</option>
  <option value="7">7</option>
  <option value="8">8</option>
  <option value="9">9</option>
  <option value="10">10</option>
  <option value="11">11</option>
  <option value="12">12</option>
</select>

<select id="selectMinute">
  <option value="00">00</option>
  <option value="5">5</option>
  <option value="10">10</option>
  <option value="15">15</option>
  <option value="20">20</option>
  <option value="25">25</option>
  <option value="30">30</option>
  <option value="35">35</option>
  <option value="40">40</option>
  <option value="45">45</option>
  <option value="50">50</option>
  <option value="55">55</option>
</select>

<select id="selectAMPM">
    <option value="am">am</option>
    <option value="pm">pm</option>
</select>
  
<button onclick="myFunction()">Calculate</button>

<p id="result"></p> 
</body>
</html>
0 голосов
/ 21 мая 2018

Вы можете получить это, используя

var dateTime = this.setTime(this.getTime() + (h*60*60*1000)); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...