Как взять значение из DateTime Picker и преобразовать его с выбором соответствующей страны - PullRequest
0 голосов
/ 05 марта 2020

Я хочу выбрать любую дату и время с помощью средства выбора даты и времени и хочу преобразовать его в соответствующую выбранную страну. Кроме того, дата должна автоматически меняться, если в соответствии с соответствующим временем. Я хочу в 24-часовом формате.

HTML код //

 <div class="box">
         <h2>World Clock</h2>
               <div class='ipicker'>
               <label>Date & Time for India</label>
                <input type="datetime-local" name='datetime' id='indian' >
             <br>
             <label>Choose Country</label>
             <select id="country" onchange="india()">
                 <option value="0">Choose Country</option>
                 <option value="1">Uk</option>
                 <option value="2">New York</option>
                 <option value="3">Tokyo</option>
             </select>
             <br>
             <br>
                <label>Date & Time</label>
                 <input type='text' id='indianText'>
                </div>

     </div>


js code//

        function india() {
            debugger
            var e = document.getElementById("country");
            var result = e.options[e.selectedIndex].value;
            if(result == 0)
            {
              alert(' select country');

          }
         else if(result == 1)
          {
            var time = document.getElementById('indian').value;
            console.log(time);
            time = EngformatDate(time);
            var engTime = document.getElementById("indianText").setAttribute("value", time);
        }
        else if(result == 2)
        {
            var time = document.getElementById('indian').value;
            console.log(time);
            time2 = NykformatDate(time);
            var engTime = document.getElementById("indianText").setAttribute("value", time2);
        }
        else if(result == 3)
        {
            var time = document.getElementById('indian').value;
            console.log(time);
            time3 = TkyformatDate(time);
            var engTime = document.getElementById("indianText").setAttribute("value", time3);
        }
        else
        {
            alert('choose country');
        }
    }

        function EngformatDate(date) {
            debugger
            console.log(date);
            var hours = new Date(date).getUTCHours();
            var minutes = new Date(date).getUTCMinutes();
            var ampm = hours >= 12 ? 'pm' : 'am';
            const dateDay = new Date(date).getUTCDate();
            const month = new Date(date).getUTCMonth()+1;
            const year = new Date(date).getUTCFullYear();
            console.log(month);
            hours = hours % 12;
            hours = hours ? hours : 12; 
            minutes = minutes < 10 ? '0' + minutes : minutes;
            var strTime = hours + ':' + minutes + ' ' + ampm;
            return   month+ "/" + dateDay+ "/" + year + " " + strTime;
        }


        function NykformatDate(date) {
            // debugger
            console.log(date);
            var hours = new Date(date).getUTCHours() + (7);
            var minutes = new Date(date).getUTCMinutes() + (0);
            var ampm = hours >= 12 ? 'pm' : 'am';
            const dateDay = new Date(date).getUTCDate();
            const month = new Date(date).getUTCMonth()+1;
            const year = new Date(date).getUTCFullYear();
            console.log(month);
            hours = hours % 12;
            hours = hours ? hours : 12; 
            minutes = minutes < 10 ? '0' + minutes : minutes;
            var strTime = hours + ':' + minutes + ' ' + ampm;
            return  month+ "/" + dateDay + "/" + year + " " + strTime;
        }

        function TkyformatDate(date) {
            debugger
            console.log(date);
            var hours = new Date(date).getUTCHours() + (9);
            var minutes = new Date(date).getUTCMinutes() + (0);
            var ampm = hours >= 12 ? 'pm' : 'am';
            const dateDay = new Date(date).getUTCDate();
            const month = new Date(date).getUTCMonth()+1;
            const year = new Date(date).getUTCFullYear();
            console.log(month);
            hours = hours % 12;
            hours = hours ? hours : 12; 
            minutes = minutes < 10 ? '0' + minutes : minutes;
            var strTime = hours + ':' + minutes + ' ' + ampm;
            return  month+ "/" + dateDay + "/" + year + " " + strTime;
        }

Я могу видеть текущее время отлично, но, например: время в Великобритании 5 часов и 30 минут медленнее чем индийское время, поэтому, если текущее индийское время 3/5/2020 4:00 утра, оно должно показывать 3/4/2020 22:30 и показываться во всей выбранной стране.

...