使用javascript(和PHP)获取Swatch Internet时间

Sei*_*Sys 2 javascript php time jquery

我想让我的用户能够选择Swatch Internet Time作为他们的时间格式.

我现在怎么样:

function startTime(){
    var d = new Date(),
        h = d.getHours(),
        m = d.getMinutes(),
        s = d.getSeconds(),
        time = "@"+parseFloat((h*3600+m*60+s*1)*0.01157,10).toString().replace(/(\.\d{1,2})\d*$/, "$1");

    $('#time').html(time);
}
Run Code Online (Sandbox Code Playgroud)

根据描述,样本时间是时区偏移自由,因此使用用户的系统时间将不起作用.

我能想到的另一种方法是向一个php文件发送ajax请求,该文件通过内置date('B')函数返回当前的swatch时间,但是后来我不能使用2位小数,而且还会产生不必要的流量.

$.ajax({type:'GET',url:'../time.php'}).done(function(data){ var time = data });
Run Code Online (Sandbox Code Playgroud)

time.php:

<?php echo date("B") ?>
Run Code Online (Sandbox Code Playgroud)

必须有某种方式以@###.##格式返回样本时间,我很想知道.

startTime()函数使用setInterval(startTime,750),因此我需要一个可以在该时间段内工作的解决方案.

Jef*_*f B 5

JavaScript有一个函数.getTimezoneOffset(),它返回GMT的分钟偏移量.

只需将瑞士比尔时区偏移(+60分钟)并减去当地时区偏移量即可.差异应该是为您提供Swatch时间的偏移量.然后根据它进行节拍计算.

你也可以使用.getUTCHours(),.getUTCMinutes()等等,这基本上是GMT.格林尼治标准时间比瑞士比尔早一个小时.因此,您只需在此处为计算添加一小时即可获得Swatch时间.

演示:http://jsfiddle.net/qF8Bt/