在Javascript中计算日出/日落时间

时间:2013-09-22 21:44:30

标签: javascript

我有时间,以度数给定纬度。有没有用这个信息计算Javascript中日出和日落时间的方法?

4 个答案:

答案 0 :(得分:17)

SunCalc似乎做你想做的事

  

SunCalc是一个小型BSD许可的JavaScript库,用于计算给定位置和时间的太阳位置,日照阶段(日出,日落,黄昏等的时间),月亮位置和月相

https://github.com/mourner/suncalc

答案 1 :(得分:4)

相关代码可在http://www.esrl.noaa.gov/gmd/grad/solcalc/

找到

您需要经度,纬度和日期。在当地时间或世界时间表明您是否想要答案将会很有帮助。获得真实准确性所需的更正(以及用于“日出”和“日落”的定义)都对计算的有效性起着重要作用。

如果你只是想知道“近似”,当太阳与地平线“在假设球形地球,围绕太阳的圆形轨道,没有大气失真”的情况下 - 那么整个射击比赛减少到某种程度非常易于管理。但是,如果你想要真正的答案,你必须通过上述网站的大约600行脚本。

对于近似值,您可以看到this earlier answer

答案 2 :(得分:1)

如果您使用JavaScript作为服务器端(Node.js)的编程语言,

Sun-time 就足够了。

npm install sun-time ; 

然后:

var sun=require('sun-time');
 sun('Tunis') // -> i.e : return {rise:"05:00",set:"18:36"}

for more details

答案 3 :(得分:1)

这个javascript程序

https://github.com/Triggertrap/sun-js

仅根据您所在位置的纬度和经度计算日出和日落时间,可以通过GPS自动获取,如下所示:

<script>
var x = document.getElementById("demo");
function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude; 
}
</script> 

它包含一个自述文件,用于解释如何使用它。它计算天顶,非常准确。