Javascript 日出/日落计算返回稍后的值
我正在根据用户的地理位置计算日出和日落。我正在使用Islamic praytime.js进行这些计算。然而,我得到日出和日落的值要比我测试的设备的实际位置晚得多 我怎样才能得到正确或更准确的日出和日落 praytimes代码: 我的实施:Javascript 日出/日落计算返回稍后的值,javascript,datetime,time,Javascript,Datetime,Time,我正在根据用户的地理位置计算日出和日落。我正在使用Islamic praytime.js进行这些计算。然而,我得到日出和日落的值要比我测试的设备的实际位置晚得多 我怎样才能得到正确或更准确的日出和日落 praytimes代码: 我的实施: navigator.geolocation.getCurrentPosition(function(pos){ lat = pos.coords.latitude; lon = pos.coords.longitude;
navigator.geolocation.getCurrentPosition(function(pos){
lat = pos.coords.latitude;
lon = pos.coords.longitude;
alert(lat+" long: "+lon);
var prayTimes = new PrayTimes();
var times = prayTimes.getTimes(new Date(), [lat, lon], getTimezoneOffset()/100);
sunrise = times.sunrise.split(':');
sunset = times.sunset.split(':');
alert("sunrise: "+sunrise[0]+" hours, "+sunrise[1]+" minutes");
alert("sunset: "+sunset[0]+" hours, "+sunset[1]+" minutes");
}
我发誓当我不使用lat和long时,我得到的是准确的值,只是时区,但现在它要求我在下载后给出lat/long参数。让PrayTimes.js计算时区。你把时区除以100,为什么 只需让脚本根据地理位置检测时区:
navigator.geolocation.getCurrentPosition(function(pos){
$('#input').removeClass('night');
lat = pos.coords.latitude;
lon = pos.coords.longitude;
var prayTimes = new PrayTimes();
var times = prayTimes.getTimes(new Date(), [lat, lon]);
}
我不知道这是否与你的问题有关,因为你只提到日出和日落,但在某些情况下,你在这里发布的代码不会显示正确的结果,因为纬度较高。看这个。要解决这个问题,您需要添加如下内容:
prayTimes.adjust({highLats:'anglebase'})
。这还提到了您可以使用的其他值。谢谢-我会记下来的