Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中将julian日期编号转换为正常日期(utc)_Javascript_Date_Julian Date - Fatal编程技术网

在javascript中将julian日期编号转换为正常日期(utc)

在javascript中将julian日期编号转换为正常日期(utc),javascript,date,julian-date,Javascript,Date,Julian Date,我想将我的儒略日期号转换为JavaScript中UTC日期格式的正常日期 . 例如,我有朱利安编号“57115”。我想转换成2015年4月10日这样的格式以下是公式: Q = JD+0.5 Z = Integer part of Q W = (Z - 1867216.25)/36524.25 X = W/4 A = Z+1+W-X B = A+1524 C = (B-122.1)/365.25 D = 365.25xC E = (B-D)/30.6001

我想将我的儒略日期号转换为JavaScript中UTC日期格式的正常日期 . 例如,我有朱利安编号“57115”。我想转换成2015年4月10日这样的格式

以下是公式:

  Q = JD+0.5
  Z = Integer part of Q
  W = (Z - 1867216.25)/36524.25
  X = W/4
  A = Z+1+W-X
  B = A+1524
  C = (B-122.1)/365.25
  D = 365.25xC
  E = (B-D)/30.6001
  F = 30.6001xE
  Day of month = B-D-F+(Q-Z)
  Month = E-1 or E-13 (must get number less than or equal to 12)
  Year = C-4715 (if Month is January or February) or C-4716 (otherwise)

尝试下面的代码

var X = parseFloat(57115)+0.5;
var Z = Math.floor(X); //Get day without time
var F = X - Z; //Get time
var Y = Math.floor((Z-1867216.25)/36524.25);
var A = Z+1+Y-Math.floor(Y/4);
var B = A+1524;
var C = Math.floor((B-122.1)/365.25);
var D = Math.floor(365.25*C);
var G = Math.floor((B-D)/30.6001);
//must get number less than or equal to 12)
var month = (G<13.5) ? (G-1) : (G-13);
//if Month is January or February, or the rest of year
var year = (month<2.5) ? (C-4715) : (C-4716);
month -= 1; //Handle JavaScript month format
var UT = B-D-Math.floor(30.6001*G)+F;
var day = Math.floor(UT);
//Determine time
UT -= Math.floor(UT);
UT *= 24;
var hour = Math.floor(UT);
UT -= Math.floor(UT);
UT *= 60;
var minute = Math.floor(UT);
UT -= Math.floor(UT);
UT *= 60;
var second = Math.round(UT);
alert(new Date(Date.UTC(year, month, day, hour, minute, second)));
var X=parseFloat(57115)+0.5;
var Z=数学楼层(X)//无时无刻不在
var F=X-Z//有时间
变量Y=数学楼层((Z-1867216.25)/36524.25);
变量A=Z+1+Y-数学楼层(Y/4);
var B=A+1524;
var C=数学下限((B-122.1)/365.25);
var D=数学地板(365.25*C);
var G=数学楼层((B-D)/30.6001);
//必须获取小于或等于12的数字)

var month=(G2015年4月具有57115值的著名日期编号方法是修改的朱利安日期(MJD)。它是自公历日期1858年11月17日世界时(UT)开始的午夜起的天数.UT是过时缩写GMT的后续版本。MJD始终在UT中。一天中的时间可能表示为一天的一小部分,因此MJD 0.75将是1858年11月17日18:00,UT。我将忽略UT和UTC之间高达一秒左右的细微差异,因为流行的个人计算设备最多只能精确到几秒。我在这里这是一个如何利用内置日期对象进行转换的示例

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"> 

<HTML>
<BODY>
<pre>
<script language="JavaScript">
// Origin of Modified Julian Date (MJD) is 00:00 November 17, 1858 of
// the Gregorian calendar
// Internal JavaScript built in Date object internal time value 0
//milliseconds (ms) is 00:00 January 1, 1970, UT,
// equal to MJD 40587
// Internal value of MJD origion should be
//negative 40587 days * 86,400,000 milliseconds per day =
// 3,506,716,800,000 ms
var originMJD = -3506716800000;
document.write("Test creation of date object containing origin of MJD.");
document.write(new Date(-3506716800000).toUTCString());
document.writeln(" should be Wed, 17 Nov 1858 00:00:00 UT.");
//Given an MJD display the Gregorian calendar date and time.
var inMJD = 57115;
var inInternal = (inMJD * 86400000) + originMJD;
document.writeln();
document.writeln("Input MJD is ", inMJD, ".");
document.write("Equivalent Gregorian calendar date and time is ",
new Date(inInternal).toUTCString(), ".");
</script>
</pre>
</BODY>
</HTML>

//修改后的朱利安日期(MJD)起源于1858年11月17日00:00
//公历
//内部JavaScript内置日期对象内部时间值0
//毫秒(ms)是美国犹他州1970年1月1日00:00,
//等于MJD 40587
//MJD原点的内部值应为
//负40587天*86400000毫秒/天=
//3506716800000毫秒
var originMJD=-3506716800000;
编写(“包含MJD原点的日期对象的测试创建”);
document.write(新日期(-3506716800000).toutString());
书面文件(“应于1858年11月17日星期三00:00:00 UT”);
//给定MJD显示公历日期和时间。
var inMJD=57115;
内部变量=(inMJD*86400000)+原始MJD;
document.writeln();
书面文件(“输入MJD为”,inMJD为,”);
文件。填写(“等效公历日期和时间为”,
新日期(在内部).toutString(),“);
示例的输出应为:

包含MJD原点的日期对象的测试创建。Wed,1858年11月17日00:00:00 GMT应为Wed,1858年11月17日00:00:00 UT

输入MJD为57115。
相当于公历的日期和时间是2015年4月3日星期五00:00:00 GMT。

我们中的一些人不知道朱利安数。因此,如果你能给出更多的解释。发布你的代码以帮助你更多。重复?它做什么?它如何做它应该做的事情?代码几乎告诉你它是如何正确的?至于什么,它转换为julian date到utc date…从问题中可以明显看出,您能否引用复制此代码的源代码?如果代码未被复制会怎么样??