gpt4 book ai didi

javascript - 将公历日期转换为 jalali

转载 作者:行者123 更新时间:2023-12-01 02:39:26 26 4
gpt4 key购买 nike

我有一个这样的函数:

var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();

var hdr = {};

还有另一个函数可以转换它:

function gregorian_to_jalali($g_y,$g_m,$g_d,$mod=''){
$g_y=tr_num($g_y); $g_m=tr_num($g_m); $g_d=tr_num($g_d);
$d_4=$g_y%4;
$g_a=array(0,0,31,59,90,120,151,181,212,243,273,304,334);
$doy_g=$g_a[(int)$g_m]+$g_d;
if($d_4==0 and $g_m>2)$doy_g++;
$d_33=(int)((($g_y-16)%132)*.0305);
$a=($d_33==3 or $d_33<($d_4-1) or $d_4==0)?286:287;
$b=(($d_33==1 or $d_33==2) and ($d_33==$d_4 or $d_4==1))?78:(($d_33==3 and $d_4==0)?80:79);
if((int)(($g_y-10)/63)==30){$a--;$b++;}
if($doy_g>$b){
$jy=$g_y-621; $doy_j=$doy_g-$b;
}else{
$jy=$g_y-622; $doy_j=$doy_g+$a;
}
if($doy_j<187){
$jm=(int)(($doy_j-1)/31); $jd=$doy_j-(31*$jm++);
}else{
$jm=(int)(($doy_j-187)/30); $jd=$doy_j-186-($jm*30); $jm+=7;
}
return($mod=='')?array($jy,$jm,$jd):$jy.$mod.$jm.$mod.$jd;
}

我只是很困惑如何使用此函数将 hdr 日期转换为 jalali 日期?我尝试过,但没有成功:

1

var date = new jdate();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();

var hdr = {};

2 还有这个:

var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var hdr = gregorian_to_jalali(y,m,d);

//var hdr = {};

我做错了什么?

这行代码的作用是:var hdr = {}; ?

让我解释一下我的整个工作,我使用日历,我想将其更改为 jalali 日历,这是我的功能:

$('#calendar').fullCalendar({
header: hdr,
editable: true,
droppable: true, // this allows things to be dropped onto the calendar !!!
drop: function drop(date) {
// this function is called when something is dropped

// retrieve the dropped element's stored Event Object
var originalEventObject = $(this).data('eventObject');

// we need to copy it, so that multiple events don't have a reference to the same object
var copiedEventObject = $.extend({}, originalEventObject);

// assign it the date that was reported
copiedEventObject.start = date;

// render the event on the calendar
// the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
$('#calendar').fullCalendar('renderEvent', copiedEventObject, true);

// is the "remove after drop" checkbox checked?
if ($('#drop-remove').is(':checked')) {
// if so, remove the element from the "Draggable Events" list
$(this).remove();
}
},
windowResize: function windowResize(event, ui) {
$('#calendar').fullCalendar('render');
}
});

最佳答案

2022 年 3 月解决方案

将公历日期转换为波斯 (Jalali) 日期的简单方法是使用 Javascript 的 Intl.DateTimeFormat()
以下是如何使用它将今天的日期转换为波斯 (Jalali) 日期:

const date = new Date(); // today's date

console.log("In Enlish : ", new Intl.DateTimeFormat('en-u-ca-persian', { dateStyle: 'full' }).format(date));
console.log("In Persian : ", new Intl.DateTimeFormat('fa-u-ca-persian', { dateStyle: 'full' }).format(date));
console.log("In Persian Latin Numbers: ", new Intl.DateTimeFormat('fa-u-ca-persian-nu-latn', { dateStyle: 'full' }).format(date));
console.log("In Arabic : ", new Intl.DateTimeFormat('ar-u-ca-persian', { dateStyle: 'full' }).format(date));

关于javascript - 将公历日期转换为 jalali,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47669912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com