new Date js
-
שלום רב
אתמול נתקלתי במשהו מעניין, אשמח אם מישהו יכול לתת לי הסבר על זה.console.log(new Date('2022-4-01').toISOString()) //output 2022-03-31T21:00:00.000Zconsole.log(new Date('2022-04-01').toISOString()) //output 2022-04-01T00:00:00.000Z@katz אני לא בטוח בדיוק בפרטים, אבל ההסבר הולך משהו כזה:
אובייקט שלDateב-JS כוללת תאריך ושעה.
פונקצייתDate(MDN) מקבלת מחרוזת בפורמט מיוחד (פירוט) וממירה אותה לאובייקט מסוגDate. אחד מהכללים של הפורמט הזה הוא שמחרוזת של תאריך בלבד (בלי שעה) מקבלת את השעה של תחילת היום של התאריך ההוא ב-UTC.
כאשר הפורמט של המחרוזת לא מתאים לתבנית המוכר, יש רשות לדפדפן לתרגם את התאריך איך שהוא רוצה (implementation dependent). מה שכרום עושה במקרה הזה הוא כנראה לתרגם גם תאריך לבד כתחילת היום באיזור הזמן המוגדר של מערכת ההפעלה. מכיון שאתה כנראה ממוקם במדינה כלשהו שאיזור הזמן שלו הוא מינוס 3 שעות מ-UTC יוצא שבהדפסה ל-UTC תקבל את היום שלפני.בדוגמה הראשונה, המחרוזת לא חוקית לפי הכללים. לכן כרום מתרגם אותו איך שבא לו.
יצויין שלא מומלץ לנסות פרסור על מחרוזות לא חוקיות מכיון שזה חושף אותך לשינויים בין המימושים השונים
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות