将波斯日期转换为朱利安或格里高利与基思伍德日历
Convert Persian date to Julian or Gregorian with keith wood calendars
我用Keith Wood日历库创建了一个日期对象:
var d = $.calendars.newDate(1393, 5, 6, 'persian', 'fa');
现在我需要从这个日期得到儒略历或公历日期,但是当我使用.toJD()
函数时,它返回的儒略历日期不等于
var e = d.toJD();
console.log(e)
那么我如何解决这个问题呢?我为这个问题创建了一个jsbin。
我认为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)
UPDATE:对于您的评论,我看到这个问题没有解决,因为它将波斯语日期转换为您的地区日期。据我所知,在库的参考中,没有办法告诉该函数应该使用哪个区域设置。因此,正如作者提供的演示所示,正确的方法是创建另一个目标日历,并将当前日历作为参数传递:
var d = $.calendars.newDate(1388, 1, 1, 'persian', 'fa');
var e = $.calendars.newDate(d, 'gregorian', 'fa');
将波斯语日期转换为任何其他日历日期的另一种方法是使用ECMAScript提案"Temporal"
下面的函数将波斯语日期转换为Javascript中18种可用日历中的任何一种。默认值是转换为公历日期。
您可以指定要转换的目标日历以及要使用的格式和区域设置:
<script type='module'>
// ====== load Temp polyfill (not needed after implementation) ========
import * as TemporalModule from 'https://cdn.jsdelivr.net/npm/@js-temporal/polyfill@0.3.0/dist/index.umd.js'
//=====================================================================
//---------------------------------------
function persianToCalendars(Y, M, D, options={}) {
return new Intl.DateTimeFormat(options.locale??="en",options).format(new Date(temporal.Temporal.PlainDateTime.from({year:Y,month:M,day:D,calendar:'persian'}).toString().split("[")[0]));
}
//---------------------------------------
console.log(persianToCalendars(1400,12,6)); // default
console.log(persianToCalendars(1400,12,6,{dateStyle: "full"}));
console.log(persianToCalendars(1400,12,6,{locale: "fa"}));
console.log(persianToCalendars(1400,12,6,{dateStyle:"full", locale: "fa"}));
console.log(persianToCalendars(1400,12,6,{calendar:"islamic", dateStyle:"full"})); // to islamic full 'en' locale
console.log(persianToCalendars(1400,12,6,{locale:"fa", calendar:"islamic", dateStyle:"full"})); // to islamic 'fa' locale
</script>
相关文章:
- JavaScript打印功能使日历停止工作
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- primefaces日历可以禁用过去的日期和时间吗
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- 如何在谷歌日历图表中使用布尔型列
- Json在完整日历中对数据进行了编码
- 将到达日历中的2天添加到离开日历中
- 如何在下拉列表中选择完整的日历月份和年份
- 谷歌公共日历链接没有'不工作(完整日历)
- 使用AJAX将日期从SQL服务器传递到jQuery日历
- 为网站表单创建一个专业的日历
- 如何在完整日历中的当天点击时显示活动详细信息
- 如何使用角度材质日历
- jQuery完整日历添加事件,仅包含月份和日期
- 从工作日结束到下一个工作日开始的完整日历JS包装时间
- 如何使用2个事件单击1个日历
- 如何删除谷歌图表日历图例
- 日历显示不正确
- 如何在JQuery全日历周模式中选择多天
- 将波斯日期转换为朱利安或格里高利与基思伍德日历