654
צפיות
צפיות
23
תשובות
תשובות
isDate בJS?
בVBS יש את isDate שבודק אם מחרוזת מסויימת היא תאריך חוקי. (חוקי למשל שלא יהיה 99/99/9)
מה הפונקציה המקבילה בJS?
בVBS יש את isDate שבודק אם מחרוזת מסויימת היא תאריך חוקי. (חוקי למשל שלא יהיה 99/99/9)
מה הפונקציה המקבילה בJS?
23 תשובות
תשובה
.
DateAdd in JS
פונקציה מקבילה לDateAdd בJS?
תשובה
יש את setMonth,setMinutes,setHours ועוד.
למשל אם אתה מעוניין שהתאריך יהיה מדויק לשעון ישראל אז תשתמש ב-setHours בצורה כזו:
theDate = new Date();
theDate.setHours(theDate.getHours()+7);
[בתפריט הצד יש את שאר השיטות].
אבל..
אני צריך להוסיף ימים/להוריד ימים לתאריך מסויים.
יש לי רק תאריך, בלי זמן.
לדוגמא יש לי את התאריך 01/01/2004, אין זמן. איך אני מוסיף לו יום, ככה שיהיה 02/01/2004? ואיך אני מוריד ממנו יום, ככה שיהיה 31/12/2003?
תודה
קודם כל
אין דבר כזה תאריך בלי זמן, זה אותו datatype.
ולשאלתך:
var x = new Date();
x.setDate(x.getDate() + 1);
alert(x.getDate());
לא מצליח..
אני עושה ככה:
var x = new Date(04,10,31); //31/10/04
x.setDate(x.getDate() + 1); //אמור להחזיר לי 01/11/04
alert(x.getDate());
במקום שזה יחזיר לי 01/11/04, זה מחזיר לי 2.
מה הבעיה בקוד?
(התאריך שאני רוצה להוסיף לו יום אחד, הוא לא חייב להיות התאריך של אותו יום)
שאני מוסיף יום זה צריך לדעת שאם אני יתן לו את התאריך 31/12/04, וארצה להוסיף לו יום, שיחזיר לי 01/01/05. ואם ארצה להחסיר יום מהתאריך 01/01/05, שיחזיר לי 31/12/04.
עוד דבר:
האם אני יכול לתת לו שנה מלאה? (2004 ולא 04).
תודה
שתי התשובות בקוד אחד:
var x = new Date("10/31/2004"); //31/10/04
x.setDate(x.getDate() + 1); //אמור להחזיר לי 01/11/04
alert(x.toString());
לא טוב.. :-/
זה לא מחזיר לי תאריך במבנה XX/XX/XX, אלה:
Mon Nov 1 00:00:00 UTC+0200 2004
תודה על העזרה.
תשובה
var x = new Date("10/31/2004"); //31/10/04
x.setDate(x.getDate()+1); //אמור להחזיר לי 01/11/04
alert(x.getDate()+"/"+(x.getMonth()+1)+"/"+x.getYear());
תודה
למרות שענו לי כבר בתפוז ואתה קוד שנתת לי גם אני חיברתי 🙂
המרת סטרינג לתאריך
יש לי את X:
var x="01/01/2005";
כרגע x הוא סטרינג.
אני רוצה להפוך אותו לתאריך, כך שאוכל להפעיל עליו פונקציות של תאריך.
ואני לא רוצה לעשות כך:
var x="01/01/2005";
var y=new date(x);
ואז להשתמש בy, אני רוצה שx יהפוך למשתנה תאריך. (הקוד הזה יהיה בלולאה, לכן אני לא רוצה להשתמש בnew date)
ניסיתי לעשות כך:
var x="01/01/2005";
x.toDateString()
alert(x.getDate());
בתקווה שזה יחזיר לי את מספר היום בתאריך, אבל זה החזיר שגיאה(מה שאומר שהניסיון להפוך את x למשתנה תאריך לא עבד).
תודה לעוזרים.
ולמה לא להשתמש ב-new Date?
אתה לא חייב ליצור 2 משתנים.
אתה יכול לשים את התאריך כבר בתוך ה-new Date.
var x=new date("01/01/2005");
בולשיט
ה Mon Nov 1 00:00:00 UTC+0200 2004 בא כי השתמשתי בפונקציה toString לא בגלל זה ש"זה לא מחזיר לי תאריך במבנה XX/XX/XX"… תנסה להפעיל על זה את שאר האובייקט של התאריך ותראה שזה עובד.
אמרתי למה..
בגלל שזה בתוך לולאה, ואי אפשר לעשות פעמיים new date לאותו משתנה,
הלולאה תרוץ כמה נגיד לחמש פעמים, אז אני צריך חמש משתנים (אני לא יודע כמה פעמים היא תרוץ זה דינמי)
אני יודע שאמרת את זה
ואני לא רואה אפשרות אחרת.
בטח שאפשר
אתה יכול ליצור את המשתנה בתוך הלולאה ואז בכל סוף איטרציה הוא ימחק ( בגלל הסקופים) ולכן תוכל ליצור אותו שוב ושוב עם נתונים חדשים .
או שאתה יוצר משתנה מחוץ ללולאה וכל פעם משנה את ערכין באמצעות dateObj.setX כאשר X זה אחד מחלקי הזמן.
תודה
צריך להציג ללקוח
בתיבת רשימה, טווח של שבועות.
מצורפת תמונה שמסבירה קצת..
(תסתכלו בתמונה)
אני רוצה שבתיבת רשימה שלי, יהיו טווחי התאריכים של כל שבוע (התאריכים שמוקפים במלבן בתמונה).
לפי התמונה, בתיבת רשימה שלי אני רוצה שיהיה ככה(מימין לשמאל):
26/09/2004 – 02/10/2004
03/10/2004 – 09/10/2004
10/10/2004 – 16/10/2004
17/10/2004 – 23/10/2004
24/10/2004 – 30/10/2004
31/10/2004 – 06/11/2004
שזה בעצם טווח התאריכים של כל השבועות, בעיקר של החודש הזה.
ושהשבוע הנוכחי יהיה selected.
למישהו יש רעיון איך לעשות את זה? או סקריפט מוכן..
אני ניסיתי! ולכן היו לי הרבה שאלות על תאריכים בזמן האחרון. אבל לא הצלחתי..
בבקשה תעזרו לי,
תודה לכולם.
התמונה
שייך לצד-שרת
למה צד שרת??
אני רוצה לעשות את זה בJS, בלקוח. לא חבל על המאשבי שרת? (לולאות)
אם הייתי רוצה לעשות את זה בשרת הייתי כותב בצד שרת.
לא כל כך הבנתי את השאלה…
התמונה קצת סיבכה אותי…
בעיה עם קוד.. (1)
הקוד אמור לעשות את מה שתיארתי לכם כמה הודעות למעלה..
ליצור תיבת רשימה עם התאריכים של השבועות בחודש.
האפשרויות בתיבת רשימה צריכים להיות כך(כמובן שזה צריך להתאים את עצמו לחודש):
26/09/2004 – 02/10/2004
03/10/2004 – 09/10/2004
10/10/2004 – 16/10/2004
17/10/2004 – 23/10/2004
24/10/2004 – 30/10/2004
31/10/2004 – 06/11/2004
בעיקרון זה צריך להציג את השבועות (ראשון עד שבת) של החודש הזה (10).
אבל החודש מתחיל באמצע שבוע (יום שישי) ולכן אני חוזר כמה ימים מהחודש הקודם, כדי להשלים את השבוע.
כנ"ל לגבי השבוע האחרון, החודש נגמר ביום ראשון, ואני רוצה להשלים את השבוע עד יום שבת (לשם כך צריך להתקדם כמה ימים לחודש הבא)
התמונה שמצורפת כמה הודעות למעלה יכולה אולי להסביר יותר טוב.
הקוד שלי מצורף בהודעה נפרדת (יותר מידי תווים).