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

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

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

new Date js

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 2 כותבים 170 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • katzK מנותק
    katzK מנותק
    katz
    כתב ב נערך לאחרונה על ידי katz
    #1

    שלום רב
    אתמול נתקלתי במשהו מעניין, אשמח אם מישהו יכול לתת לי הסבר על זה.

    console.log(new Date('2022-4-01').toISOString())
    //output 2022-03-31T21:00:00.000Z
    
    console.log(new Date('2022-04-01').toISOString())
    //output 2022-04-01T00:00:00.000Z
    

    מערכת שעות עבודה, https://timess.co.il/
    בלוג הקוד שלי: https://yossef7525.github.io/

    yossizY תגובה 1 תגובה אחרונה
    1
    • yossizY מנותק
      yossizY מנותק
      yossiz
      השיב לkatz ב נערך לאחרונה על ידי yossiz
      #2

      @katz אני לא בטוח בדיוק בפרטים, אבל ההסבר הולך משהו כזה:
      אובייקט של Date ב-JS כוללת תאריך ושעה.
      פונקציית Date (MDN) מקבלת מחרוזת בפורמט מיוחד (פירוט) וממירה אותה לאובייקט מסוג Date. אחד מהכללים של הפורמט הזה הוא שמחרוזת של תאריך בלבד (בלי שעה) מקבלת את השעה של תחילת היום של התאריך ההוא ב-UTC.
      כאשר הפורמט של המחרוזת לא מתאים לתבנית המוכר, יש רשות לדפדפן לתרגם את התאריך איך שהוא רוצה (implementation dependent). מה שכרום עושה במקרה הזה הוא כנראה לתרגם גם תאריך לבד כתחילת היום באיזור הזמן המוגדר של מערכת ההפעלה. מכיון שאתה כנראה ממוקם במדינה כלשהו שאיזור הזמן שלו הוא מינוס 3 שעות מ-UTC יוצא שבהדפסה ל-UTC תקבל את היום שלפני.

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

      יצויין שלא מומלץ לנסות פרסור על מחרוזות לא חוקיות מכיון שזה חושף אותך לשינויים בין המימושים השונים

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

        אגב, בפיירפוקס שני הפקודות מדפיסים אותו דבר

        (new Date('2022-04-01').toISOString()) === (new Date('2022-4-01').toISOString())
        //true
        

        📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

        תגובה 1 תגובה אחרונה
        6

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

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

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