用基思木日历将波斯日期转换为朱利安或格里高利

MBe*_*mam 8 javascript date

我用波斯语瞬间创建了一个带Keith Wood日历库的日期对象:

var d = $.calendars.newDate(1393, 5, 6, 'persian', 'fa'); 
Run Code Online (Sandbox Code Playgroud)

现在我需要从这个日期获得Julian或Gregorian日期,但是当我使用.toJD()函数时,它返回的朱利安日期不等于当前日期

 var e = d.toJD();
 console.log(e) 
Run Code Online (Sandbox Code Playgroud)

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

Pab*_*ano 7

我认为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)
Run Code Online (Sandbox Code Playgroud)

更新:对于您的评论我看到问题没有解决,因为它将波斯日期转换为您的区域设置日期.据我所知,在库的引用中,没有办法告诉该函数应该使用哪个语言环境.因此,正如作者提供的演示所示,正确的方法是创建另一个目标日历并将当前日历作为参数传递:

var d = $.calendars.newDate(1388, 1, 1, 'persian', 'fa');
var e = $.calendars.newDate(d, 'gregorian', 'fa');
Run Code Online (Sandbox Code Playgroud)