用于日期转换的固定日期

时间:2017-05-25 03:04:22

标签: javascript date datetime

我有没有办法确定我将用于转换的固定日期。

正如你所看到的,下面的代码表明它是在马尼拉,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();
	var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
	var myDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
	var date = new Date();
	var day = date.getDate();
	var month = date.getMonth();
	var thisDay = date.getDay(),
    	thisDay = myDays[thisDay];
	var yy = date.getYear();
	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);
     	document.getElementById('clock-large1').innerHTML=curr_hour + " : " + curr_minute + " : " + curr_second + " " + a_p;
	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);
&#13;
<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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

结帐时刻.js

http://momentjs.com

您可以指定日期时间的时区

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

如果您无法使用外部链接,请尝试以下代码:

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())

答案 1 :(得分:0)

  

有没有办法获得一个将用作默认日期的日期,以便我可以添加或减去小时数来获得我想要的转换日期,即使它会在不同的时区开放?

是的,只需指定&#34;固定&#34;以合适的格式约会。大多数浏览器将解析ISO 8601扩展格式字符串,如2017-05-25T17:35:48 + 08:00。这代表马尼拉的下午5:30,即UTC + 08:00。

要获得用户系统的等效时间:

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

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

如果您想支持IE 8等浏览器,您需要手动解析字符串或使用带解析器的库,例如: moment.jsfecha.js