דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. קבלת תאריך עברי של היום בשפת JS

קבלת תאריך עברי של היום בשפת JS

מתוזמן נעוץ נעול הועבר תכנות
18 פוסטים 6 כותבים 2.6k צפיות 6 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • meir lamdanM מנותק
    meir lamdanM מנותק
    meir lamdan
    כתב ב נערך לאחרונה על ידי
    #2
    import { HDate } from '@hebcal/core';
    
    const date = new HDate().renderGematriya(true);
    

    שניים מקרא | מיזוג pdf

    ש תגובה 1 תגובה אחרונה
    1
    • meir lamdanM meir lamdan
      import { HDate } from '@hebcal/core';
      
      const date = new HDate().renderGematriya(true);
      
      ש מנותק
      ש מנותק
      ששא
      כתב ב נערך לאחרונה על ידי
      #3

      @meir-lamdan a9c448ca-a8ae-4b1c-b1cd-814569b12be0-image.png

      meir lamdanM תגובה 1 תגובה אחרונה
      0
      • ש ששא

        @meir-lamdan a9c448ca-a8ae-4b1c-b1cd-814569b12be0-image.png

        meir lamdanM מנותק
        meir lamdanM מנותק
        meir lamdan
        כתב ב נערך לאחרונה על ידי meir lamdan
        #4

        @ששא כתב בקבלת תאריך עברי של היום בשפת JS:

        @meir-lamdan a9c448ca-a8ae-4b1c-b1cd-814569b12be0-image.png

        תנסה את זה

        const { HDate } = require('@hebcal/core');
        

        אם זה עדיין לא עובד כדאי להביא את הקוד המלא

        שניים מקרא | מיזוג pdf

        תגובה 1 תגובה אחרונה
        0
        • א מנותק
          א מנותק
          אביחיל
          כתב ב נערך לאחרונה על ידי
          #5

          @ששא אתה מריץ את הקוד בדפדפן או ב node js ?
          כי אם אתה מריץ בדפדפן לא יעזור לך הקוד ששלחו פה

          תגובה 1 תגובה אחרונה
          0
          • ש ששא

            אני רוצה לקבל את התאריך העברי של היום בשפת JS
            הבנתי שהכי טוב זה להשתמש עם hebcal, אבל הסתבכתי שם
            מישהו יכול לתת לי אולי דוגמא איך לקבל את התאריך העברי של היום בטקסט, ואני מקווה משם כבר להמשיך לבד לדוגמאות האחרות

            או אולי יש דרך יותר קלה?

            תודה רבה!

            אבייא מנותק
            אבייא מנותק
            אביי
            כתב ב נערך לאחרונה על ידי אביי
            #6

            @ששא תבצע קריאה ללינק הזה

            https://www.hebcal.com/converter?cfg=json&gy=2024&gm=01&gd=15&g2h=1&strict=1&gs=off

            זה ליום 15/01/2024

            ומחזיר json כזה:

            {"gy":2024,"gm":1,"gd":15,"afterSunset":false,"hy":5784,"hm":"Sh'vat","hd":5,"hebrew":"ה׳ בִּשְׁבָט תשפ״ד","heDateParts":{"y":"תשפ״ד","m":"שבט","d":"ה׳"},"events":["Parashat Bo"]}
            

            אם אתה עובד באמת עם node js כמו שהבינו כאן לפני, עדיף לך להשתמש כמו שהביאו למעלה באופן לוקאלי,

            import { HDate } from '@hebcal/core';
             
            const date = new HDate().renderGematriya(true);
            
            console.log(date)
            

            אתה צריך להתקין את המודול

            npm install @hebcal/core
            

            ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
            הלינקיה שלי https://abaye.co/link.html

            תגובה 1 תגובה אחרונה
            4
            • 5 מנותק
              5 מנותק
              5566brs
              כתב ב נערך לאחרונה על ידי 5566brs
              #7

              בJS גם אפשר, מאמין שיש דרך יותר מסודרת ונכונה, זה מה שיצא לי כעת:

              const hebm = ['תשרי', 'חשון', 'כסליו', 'טבת', 'שבט', 'אדר א', 'אדר ב', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];
              const hebc = 'אבגדהוזחטיכלמנסעפצקרשת'.split('');
              const toObj = a => Object.fromEntries(a.map((e, i) => [i + 1, e]));
              const [mobj, cobj] = [hebm, hebc].map(toObj);
              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,"'")
              
              const [d, m, y] = Intl.DateTimeFormat('en-u-ca-hebrew', { year: '2-digit', month: 'narrow', day: 'numeric' }).format(new Date()).split(' ');
              console.log(d, m, y);
              console.log(toHebCount(d), mobj[m], `תש${toHebCount(y)}`);
              

              עריכה: יש באג עם חודש אדר, ראו בהמשך
              ואותו דבר כפונקציה שמקבלת תאריך ומחזירה עברי:
              עריכה: הפונקציה תוקנה, ונראה שמחזירה תאריך תקין תודה ל @dovid על התיקונים שהוסיף.

              const getHebDate = date => {
                  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, "'");
                  const [d, m, y] = Intl.DateTimeFormat('en-u-ca-hebrew', { year: '2-digit', month: 'narrow', day: 'numeric' }).format(date || new Date()).split(' ').map(Number);
                  return `${toHebCount(d)} ${m > 5 ? [0, 3, 6, 8, 11, 14, 17].includes((5700 + y) % 19) && [6, 7].includes(m) ? m === 6 ? "אדר א'" : "אדר ב'" : mobj[m - 1] : mobj[m]} תש${toHebCount(y)}`;
              }
              
              console.log(getHebDate(Date.now() + 1000*60*60*24*3));
              
              תגובה 1 תגובה אחרונה
              6
              • dovidD מנותק
                dovidD מנותק
                dovid
                ניהול
                כתב ב נערך לאחרונה על ידי dovid
                #8

                @5566brs מדהים.. אני לא רואה שהתמודדת עם שני האדרים, איך זה עובד שזה לא תמיד יחזיר אדר ב' עבור ניסן ואילך?

                • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                תגובה 1 תגובה אחרונה
                0
                • 5 מנותק
                  5 מנותק
                  5566brs
                  כתב ב נערך לאחרונה על ידי
                  #9

                  נראה שזה כן מחזיר אדר ב', ובכל מקרה זה יחזיר תמיד אדר ב' ולא אדר סתם.
                  צריך לתקן\לשפר..

                  dovidD תגובה 1 תגובה אחרונה
                  1
                  • 5 5566brs

                    נראה שזה כן מחזיר אדר ב', ובכל מקרה זה יחזיר תמיד אדר ב' ולא אדר סתם.
                    צריך לתקן\לשפר..

                    dovidD מנותק
                    dovidD מנותק
                    dovid
                    ניהול
                    כתב ב נערך לאחרונה על ידי dovid
                    #10

                    נעזרתי בזה
                    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)}`;
                    }
                    
                    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                    ש 2 תגובות תגובה אחרונה
                    3
                    • dovidD dovid

                      נעזרתי בזה
                      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)}`;
                      }
                      
                      ש מנותק
                      ש מנותק
                      ששא
                      כתב ב נערך לאחרונה על ידי
                      #11

                      @dovid מדהים!
                      אבל איזה מספר הוא מחזיר על ניסן בשנה מעוברת ואיזה בשנה לא מעוברת?

                      תגובה 1 תגובה אחרונה
                      0
                      • dovidD dovid

                        נעזרתי בזה
                        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)}`;
                        }
                        
                        ש מנותק
                        ש מנותק
                        ששא
                        כתב ב נערך לאחרונה על ידי
                        #12

                        @dovid אם אני רוצה להחזיר לפי תאריך מסויים - מה אני צריך להעביר לפונקצייה? איזה פורמט?
                        ניסיתי להעביר לו 12/4/2024 והוא מחזיר לי מספר חודש עברי 4 וכך גם 12/5/2024

                        5 תגובה 1 תגובה אחרונה
                        0
                        • dovidD מנותק
                          dovidD מנותק
                          dovid
                          ניהול
                          כתב ב נערך לאחרונה על ידי
                          #13

                          @ששא אתה יודע JS? אתה יודע להתעסק טיפה עם האובייקט date?

                          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                          ש תגובה 1 תגובה אחרונה
                          0
                          • dovidD dovid

                            @ששא אתה יודע JS? אתה יודע להתעסק טיפה עם האובייקט date?

                            ש מנותק
                            ש מנותק
                            ששא
                            כתב ב נערך לאחרונה על ידי
                            #14

                            @dovid כן
                            5ccfe166-8ec4-4460-8664-e07a70fac297-image.png

                            תגובה 1 תגובה אחרונה
                            0
                            • ש ששא

                              @dovid אם אני רוצה להחזיר לפי תאריך מסויים - מה אני צריך להעביר לפונקצייה? איזה פורמט?
                              ניסיתי להעביר לו 12/4/2024 והוא מחזיר לי מספר חודש עברי 4 וכך גם 12/5/2024

                              5 מנותק
                              5 מנותק
                              5566brs
                              כתב ב נערך לאחרונה על ידי
                              #15

                              @ששא

                              לשאלתך, כדי לקבל את התאריך של מחר (לדוגמא) תוכל להכניס:

                              getHebDate(new Date(2024,1,7))
                              

                              החודש הוא 1 כי החודשים מתחילים מ-0 (לא ידוע לי מדוע).

                              הפונקציה לעיל תוקנה, אחרי ההערות של ועם הקוד שהביא @dovid.

                              ש תגובה 1 תגובה אחרונה
                              1
                              • 5 5566brs

                                @ששא

                                לשאלתך, כדי לקבל את התאריך של מחר (לדוגמא) תוכל להכניס:

                                getHebDate(new Date(2024,1,7))
                                

                                החודש הוא 1 כי החודשים מתחילים מ-0 (לא ידוע לי מדוע).

                                הפונקציה לעיל תוקנה, אחרי ההערות של ועם הקוד שהביא @dovid.

                                ש מנותק
                                ש מנותק
                                ששא
                                כתב ב נערך לאחרונה על ידי
                                #16

                                @5566brs

                                @ששא כתב בקבלת תאריך עברי של היום בשפת JS:

                                אבל איזה מספר הוא מחזיר על ניסן בשנה מעוברת ואיזה בשנה לא מעוברת?

                                5 תגובה 1 תגובה אחרונה
                                0
                                • ש ששא

                                  @5566brs

                                  @ששא כתב בקבלת תאריך עברי של היום בשפת JS:

                                  אבל איזה מספר הוא מחזיר על ניסן בשנה מעוברת ואיזה בשנה לא מעוברת?

                                  5 מנותק
                                  5 מנותק
                                  5566brs
                                  כתב ב נערך לאחרונה על ידי
                                  #17

                                  @ששא כתב בקבלת תאריך עברי של היום בשפת JS:

                                  תמיד 8.

                                  תגובה 1 תגובה אחרונה
                                  1
                                  • 5 מנותק
                                    5 מנותק
                                    5566brs
                                    כתב ב נערך לאחרונה על ידי
                                    #18

                                    מכיון שהעירו שהפונקציה לא תעבוד אחרי סוף עידן ה"תש", מצ"ב פונקציה משודרגת..
                                    תודה ל@meir-lamdan שהביא לידיעתי את הפונקציה להמרת של ספירה בלש"ק.

                                    const getHebDate2 = date => {
                                        const toHebCount = n => [...'ת'.repeat(Math.floor(n / 400)), ..."קרש"[Math.floor(n % 400 / 100) - 1] ?? [], ...n % 100 === 15 ? ['טו'] : n % 100 === 16 ? ['טז'] : [..."יכלמנסעפצ"[Math.floor(n % 100 / 10) - 1] ?? [], ..."אבגדהוזחט"[n % 10 - 1] ?? []]].toSpliced(-1,0, '"').join('').replace(/^"|"$/g, '').padEnd(2, "'");
                                        const getX = opt => Intl.DateTimeFormat('he-u-ca-hebrew', { [opt]: 'numeric' }).format(date || new Date());
                                        return [toHebCount(getX('day')), getX('month'), toHebCount(getX('year') % 1e3)].join(' ');
                                    }
                                    

                                    אפשר לקבל ללא גרשיים על ידי החלפת הקוד החל מtoSpliced לjoin.
                                    מי שמעונין לקבוע את הטקסט של שם החודש (כגון מר-חשון במקום חשון) יצטרך לשלב עם הפונקציה הקודמת.

                                    תגובה 1 תגובה אחרונה
                                    2
                                    תגובה
                                    • תגובה כנושא
                                    התחברו כדי לפרסם תגובה
                                    • מהישן לחדש
                                    • מהחדש לישן
                                    • הכי הרבה הצבעות


                                    בא תתחבר לדף היומי!
                                    • התחברות

                                    • אין לך חשבון עדיין? הרשמה

                                    • התחברו או הירשמו כדי לחפש.
                                    • פוסט ראשון
                                      פוסט אחרון
                                    0
                                    • דף הבית
                                    • קטגוריות
                                    • פוסטים אחרונים
                                    • משתמשים
                                    • חיפוש
                                    • חוקי הפורום