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