נעזרתי בזה
https://www.dafaweek.com/HebCal/HebCalSampleSource.php
function getHebDate(date) {
function IsLeapYear(nYearH) {
switch (nYearH % 19) {
case 0: case 3: case 6: case 8: case 11: case 14: case 17: return true;
default: return false;
}
}
const [mobj, cobj] = [['תשרי', 'חשון', 'כסליו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'], 'אבגדהוזחטיכלמנסעפצקרשת'.split('')].map(a => Object.fromEntries(a.map((e, i) => [i + 1, e])))
const toHebCount = n => String(n).split('').toReversed().map((e, i) => cobj[i ? (i * 9) + Number(e) : Number(e)]).toReversed().filter(Boolean).join('"').replace('י"ה', 'ט"ו').replace('י"ו', 'ט"ז').padEnd(2, "'")
let [d, m, y] = Intl.DateTimeFormat('en-u-ca-hebrew', { year: '2-digit', month: 'narrow', day: 'numeric' }).format(date || new Date()).split(' ');
m = Number(m);
let month = mobj[m];
if(+m > 5 && IsLeapYear(5700 + Number(y))){
if(m === 6) month = 'אדר א';
else if(m === 7) month = 'אדר ב';
else month = mobj[m-1];
}
return `${toHebCount(d)} ${month} תש${toHebCount(y)}`;
}