2017-05-25 86 views
0

有沒有辦法我可以有一個固定的日期,我將用於轉換。固定日期將用於日期轉換

正如你所看到的,下面的代碼表明它是在馬尼拉PH的時間,但是當你打開它,因爲你在不同的時區給我,它會給你不同的時間。日期();只會在你的電腦上得到時間。

有沒有辦法獲得一個日期作爲默認日期,以便我可以添加或減去幾小時來獲得我想要的轉換日期,即使它將在不同的時區打開?

function showTime() { 
 
     var a_p = ""; 
 
     var today = new Date(); 
 
     var curr_hour = today.getHours(); 
 
     var curr_minute = today.getMinutes(); 
 
     var curr_second = today.getSeconds(); 
 
\t var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; 
 
\t var myDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; 
 
\t var date = new Date(); 
 
\t var day = date.getDate(); 
 
\t var month = date.getMonth(); 
 
\t var thisDay = date.getDay(), 
 
    \t thisDay = myDays[thisDay]; 
 
\t var yy = date.getYear(); 
 
\t var year = (yy < 1000) ? yy + 1900 : yy; 
 
     
 
     if (curr_hour < 12) { 
 
      a_p = "<span>AM</span>"; 
 
     } else { 
 
      a_p = "<span>PM</span>"; 
 
     } 
 
     if (curr_hour == 0) { 
 
      curr_hour = 12; 
 
     } 
 
     if (curr_hour > 12) { 
 
      curr_hour = curr_hour - 12; 
 
     } 
 
     curr_hour = checkTime(curr_hour); 
 
     curr_minute = checkTime(curr_minute); 
 
     curr_second = checkTime(curr_second); 
 
     \t document.getElementById('clock-large1').innerHTML=curr_hour + " : " + curr_minute + " : " + curr_second + " " + a_p; 
 
\t document.getElementById('date-large1').innerHTML="<b>" + thisDay + "</b>, " + day + " " + months[month] + " " + year; 
 
     } 
 

 
    function checkTime(i) { 
 
     if (i < 10) { 
 
      i = "0" + i; 
 
     } 
 
     return i; 
 

 
    } 
 
    setInterval(showTime, 500);
<div id="clockdate-full"> 
 
    <div class="wrapper-clockdate1"> 
 
    <div id="clock-large1"></div> 
 
    <div id="date-large1"></div> 
 
    <div id="timezone">Manila, PH</div> 
 
    </div> 
 
</div>

+1

我建議你可以使用Date.UTC(),我的朋友。請訪問此鏈接參考更多:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC – Tomato32

回答

0

有沒有辦法讓這將是作爲一個默認的日期,這樣我可以添加或減去小時才能到達我想要的轉換日期,即使這將是開放的日期在不同的時區?

是的,只需以合適的格式指定「固定」日期即可。大多數瀏覽器將解析ISO 8601擴展格式字符串,如2017-05-25T17:35:48 + 08:00。這代表馬尼拉下午5:30,即UTC + 08:00。

要獲得相當的時間在用戶的系統上:

var d = new Date('2017-05-25T17:35:48+08:00'); 
 

 
console.log(d.toString()); // equivalent local time

如果你想支持瀏覽器,如IE 8,你需要手動解析字符串或使用庫用解析器,例如moment.jsfecha.js

1

結帳時刻.js文件

http://momentjs.com

您可以指定的日期時間

var timezone = 'America/Chicago' 
moment().tz(timezone).format('hh:mm:ss z') 

的時區如果您不能使用外部鏈接,你應該t RY下面的代碼:

var opt= { 
    timeZone: 'America/Chicago', 
    year: 'numeric', month: 'numeric', day: 'numeric', 
    hour: 'numeric', minute: 'numeric', second: 'numeric' 
}, 
    formatDate = new Intl.DateTimeFormat([], opt) 
formatDate.format(new Date()) 
+0

嗨Partrick,我會嘗試這一個,但我目前正在使用Web部件共享點,我認爲連接外部js是不可能的。如果Sharepoint頁面不接受鏈接,是否有其他方法可以實現此目的? – JunTan

+0

檢查我對編輯的答案 –