【发布时间】:2018-04-07 03:05:49
【问题描述】:
我正在尝试使用 javascript 从日历日期字符串计算儒略日期。我发现 this site 解释了如何计算它。
我制作了这个javascript代码:https://jsfiddle.net/kzgn8vs1/1/
var time = moment("2018-04-07 23:45:16 -0300", "YYYY-MM-DD HH:mm:ss Z").utc();
var Y = time.year();
var M = time.month() + 1;
var D = time.date() + moment.duration(time.format('HH:mm:ss')).asDays();
if( M == 1 || M == 2 ) {
Y = Y - 1;
M = M + 12;
}
var A = Y / 100;
var B = 2 - A + (A / 4);
var C = ( Y > 0 ) ? (365.25 * Y) : ((365.25 * Y) - 0.75);
var E = 30.6001 * (M + 1);
var JD = B+C+D+E+1720994.5;
console.log(JD);
返回 2458216.9802685184 日期为 2018-04-07 23:45:16 -0300。但是当我尝试一些在线转换器时,例如 http://www.onlineconversion.com/julian_date.htm 和 https://www.aavso.org/jd-calculator
输入日期 2018-04-08 2:45:16(我的日期转换为 UTC),都返回 2458216.61477。与我的结果相差 0.36。
错误在哪里?在我的代码中还是在计算方法中?
【问题讨论】:
-
你可以找到关于这个问题的详细解释stackoverflow.com/questions/11759992/…
-
该问题的代码示例也给了我与我尝试过的所有在线计算器不同的结果,相差+-30或40,我的代码更接近在线计算器结果。
-
检查我发布的答案,我能够修改你的代码以获得在线计算器的答案,并详细说明了我是如何得到它的
标签: javascript date time julian-date