【问题标题】:Convert Persian date to Julian or Gregorian with keith wood calendars使用 keith wood 日历将波斯日期转换为儒略或公历
【发布时间】:2014-09-19 07:55:26
【问题描述】:

我用Keith Wood calendar library 用波斯即时创建了一个日期对象:

var d = $.calendars.newDate(1393, 5, 6, 'persian', 'fa'); 

现在我需要从此日期获取儒略或公历日期,但是当我使用 .toJD() 函数时,它返回的儒略日期不等于当前日期

 var e = d.toJD();
 console.log(e) 

那么我该如何解决这个问题呢?我为这个问题创建了一个jsbin

【问题讨论】:

  • 你试过d.toJSDate()吗?
  • @Pablo 它尝试你的方式并返回Sat May 25 1393 00:00:00 GMT+0430 (Iran Daylight Time) 但年份仍然是 1393 但我需要 2014 年。
  • 我已经更新了我的答案,你可以在 Keith Wood 的网站上找到转换的例子

标签: javascript date


【解决方案1】:

我认为toJD() 不是你需要的:

var d = $.calendars.newDate(1388, 1, 1, 'persian', 'fa');
console.log("Persian date: "+d.toLocaleString()); // Persian date: 1388-01-01
var e = d.toJSDate();
console.log(e); // Sat Mar 21 2009 00:00:00 GMT+0100 (Romance Standard Time)

更新:对于您的评论,我认为此问题并未解决,因为它将波斯日期转换为您的语言环境日期。据我在图书馆的参考资料中所见,没有办法告诉该函数应该使用哪个语言环境。所以正确的方法,作为author's provided demo shows,是创建另一个目标日历并将当前的日历作为参数传递:

var d = $.calendars.newDate(1388, 1, 1, 'persian', 'fa');
var e = $.calendars.newDate(d, 'gregorian', 'fa');

【讨论】:

    猜你喜欢
    • 2013-07-21
    • 1970-01-01
    • 2012-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2012-08-25
    相关资源
    最近更新 更多