2013-12-18 2 views
0

Кто-нибудь есть компактная/элегантная карта из ISO-8601 даты времени строки следующего вида:Карта ISO8601 дата время строки дня Julian с помощью JavaScript

2013-12-28T20:30:00-0700 

К Джулианам дня. Я надеюсь найти решение, которое позволяет избежать внешней библиотеки и имеет минимальное регулярное и строковое манипулирование.

+1

ли вы имеете в виду реальное [Julian Day] (http://en.wikipedia.org/wiki/Julian_day) или, может быть, [Порядковый Дата] (HTTP: // en.wikipedia.org/wiki/Ordinal_date)? – Teemu

+0

Возможный дубликат [Расчет Jday (Юлианский день) в javascript] (http://stackoverflow.com/questions/11759992/calculating-jdayjulian-day-in-javascript) –

ответ

1

Вот один из способов сделать это.

Вы можете преобразовать строку ISO с смещением часового пояса - к объекту JavaScript в современном JavaScript (ES5). Это работает в Node.js, Chrome и Firefox. Он еще не поддерживается в Safari или IE. Если вам нужно, чтобы он работал во всех браузерах, вам нужно самостоятельно проанализировать дату или использовать библиотеку, например, Moment.js.

Я протестировал этот алгоритм против US Naval Observatory Julian Date Converter для ряда дат.

Для дат, предшествующих григорианскому переходу (15 октября 1582 года), это предполагает прорептический григорианский календарь и будет отличаться от того, что показывает Военно-морская обсерватория США. Использование

function julianDayNumber(d) { 
    var epoch = 2440587.500000;     // Jan. 1, 1970 00:00:00 UTC 
    return d.getTime()/86400000 + epoch; 
} 

Пример:

console.log(julianDayNumber(new Date('2013-12-28T20:30:00-0700'))); 
// prints: 2456655.6458333335 
+0

Извините за downvote, но moment.js не имеют любую функцию для вычисления юлианского числа. –

+0

Достаточно честно. У меня есть вопрос. По номеру Julian day, вы (и OP) ищете количество дней, прошедших с 1 января 4713 года до нашей эры? В какой области это относится? Мое предположение было бы астрономией? – Nate

+0

Юлианский день связан с юлианским календарем. Вы можете прочитать об этом [здесь] (http://en.wikipedia.org/wiki/Julian_day). Учет различий между юлианскими и григорианскими календарями он может быть рассчитан путем подсчета количества целых дней с 24 ноября 4714 г. до н. Э. По * пролепетическому григорианскому календарю (пролептическое означает, что оно всегда действовало, хотя оно и не было). Да, он используется в астрономии, среди других областей. –

Смежные вопросы