תאריכים.

yair24

Member
תאריכים.

שלום, יש לי דף שמכניס לטבלה כל מיני נתונים, בין היתר גם את התאריך הנוכחי. אני רוצה להציג את הטבלה ממוינת לפי התאריכים כלומר לפי ימים, השעות לא מענינות אותי. שמרתי את התאריך כTIMESTAMP. בעמוד שמוסיף את הנתונים לטבלה אני לוקח את התאריך בצורה כזו:
$timestamp=strtotime(date()) ;​
ואת המשתנה הזה אני מכניס לטבלה. כלומר מה שיוצא פה זה הכנסת התאריך בלבד ללא קשר לשעה שבה מישהו ביקר בעמוד הזה. מה שאני רוצה עכשיו זה לעשות עמוד שמקבל כפרמטר בשורת הכתובת את התאריך ומציג את כל העמודות שבהן התאריך הוא התאריך המבוקש. השורה צריכה להראות ככה:
http://www.yoyo.com?date=מה לרשום פה​
מבינים מה הבעיה? אני רוצהלדעת מה אני רושם בDATE=שווה למה?? חשבתי על הTIMESTAMP עצמו כלומר על מספר INT גדול. יש למישהו רעיון אחר? מישהו עשה כבר דבר כזה ויודע לתת פתרון יותר יעיל? (כי אני צריך גם לעשות לינק שנקרא "יום קודם" וכשלוחצים עליו זה מוריד יום וכו') יאיר
 

N i X

New member
אם כבר התחלת עם TS

אז תעבוד כבר עם TS. אתה צריך תאריך של אתמול? של מחר? בבקשה:
$minute = 60; // 60secs in minute $hour = 60*$minute; // 60min in hour $day = 24*$hour; // 24 hours in a day, or 86400 seconds $today = strtotime(date()); // הקוד שלך, לא בדקתי. $tommorow = $today+$day; // makes sense, no? ;) $yesterday = $today-$day;​
 

yair24

Member
תודה רבה

אני אנסה לעשות שמהו עם זה. כי אני צריך לבנות מנגנון שבכל עמוד יש לי שני לינקים של "יום קודם" ו"יום הבא" ואני צריך לחשוב על דרך איך לעשות את זה... לדעתי אני אצטרך לשמור כל הזמן את התאריך של העמוד הנוכחי ולהעביר גם אותו בשורה של הכתובת. יאיר
 

yair24

Member
הסתבכתי עם התאריכים...

יש בעיה בקוד הזה. מה שקורה זה שכנראה בשרת הראשון שהעליתי אליו את הקוד מוגדר לא להראות WARNINGS ואין לי שליטה על זה. אני מנחש שזה ככה בגלל שלא ראיתי שום WARNING. הבעיה מתחילה כשאני מעלה את זה לשרת אחר ששם כנראה זה לא מבוטל. הוא נותן לי שגיאה לגבי השורה הזאת:
$today = strtotime(date());​
הוא נותן אזהרה שאין מספיק פרמטרים לפונקציה DATE אז יש כמה אפשרויות, הוספתי @ לפני השורה בשביל שלא ייתן לי את השגיאה. ובעיקרון זה עובד יפה. אבל אני לא רוצה לעשות ככה כי אני מפחד שמתישהו זה לא יעבוד. לכן בדקתי במנואל ועשיתי ככה:
$today = strtotime(date("d-m-Y"));​
עכשיו התחילו כל מיני בעיות: הוא תירגם לי את זה לאיזה תאריך מהתחת, אז שיניתי את הסדר של הפורמט של התאריך אבל כל פעם הוא נותן לי מספר אחר... מה הברירת מחדל של הפרמטר הזה? אני יודע דבר אחד מהשרת הראשון שעשיתי: התאריך של היום לפי מספר השניות שעברו מ1970 עד היום זה המספר הבא: 1067810400 וזה בדוק מהשרת הראשון וגם אם נחשב אני מאמין שזה יצא נכון. בשרת החדש כל פעם שאני משנה פורמט הוא מביא לי מספרים... אני לא יודע מאיפה הוא מביא אותם... ולמה הוא מביא אותם ככה... מה זה משנה הפורמט? הקיצר כל עזרה תתקבל בברכה יאיר
 

N i X

New member
האמת חשבתי שזה יהיה משהו כזה

אבל חשבתי שבדקת וזה עובד, אז לא ניסיתי אפילו... בכל אופן, יש לי רעיון אחר בשבילך, שצץ אחריי עיון קצר במנואל... תריץ את הסקריפט הזה, אולי זה יעזור לך:
<?php print(strtotime("00:00 yesterday") . "\n"); print(strtotime("00:00 today") . "\n"); print(strtotime("00:00 tomorrow") . "\n"); ?>​
 

yair24

Member
שניה שניה עשיתי משהו אחר.

מאחר ואני יודע מה המספר הנכון של השניות שעברו מ1970 עד היום (אני יודע כי בשרת שלא הראה שגיאות זה עבד נכון) אז מה שעשיתי זה עמוד קצר שמדפיס את התוצאה של כל מיני פורמטים של הפקודה DATE בצורה הבאה:
$timestamp=strtotime(date("m-d-Y")) ; echo "1067810 ".$timestamp; $timestamp=strtotime(date("D-M-Y")) ; echo "1067810 ".$timestamp; $timestamp=strtotime(date("d-M-Y")) ; echo "1067810 ".$timestamp; . . . .​
וכו' וכו' ואז פשוט בדקתי מתי הוא הדפיס לי את המספר הנכון וזה ההכל... הוא הדפיס את המספר הנכון במקרה השלישי. לדעתך יש כאן טעות? אני לא מבין למה הוא נותן בכלל תוצאות שונות כל פעם... כי במנואל כתוב שהפונקציה לוקחת מחרוזת שמעוצבת כמו תאריך כלשהו אנגלי ומחזירה את הTIMESTAMP המתאים... אז לדעתי התוצאה היתה צריכה להיות אותה תוצאה כל הזמן אבל זה לא... אם אתה חושב שיש סכנה שהאפליקציה לא תעבוד אותו דבר על כל שרת אז תגיד לי. יאיר יאיר
 
למעלה