logo


פרק 9: המילניום - ניהול זמן ותאריך

זמן ידידותי למשתמש

לרשות המשתמש ב Perl ישנם שתי פונקציות מובנות אשר יודעות לתרגם את הזמן שהמחשב מכיר (תקופתי החל מה 1.1.70) לפורמט מובן למשתמש. הן הפונקציה gmtime והן הפונקציה localtime יודעות להוציא את הזמן הנוכחי, ו/או לשלוף אלמנטים שונים מהזמן התקופתי, כגון חודש, שעה, דקה וכדומה. אולם בעוד שgmtime מחזירה את הערכים הללו ביחס לשעון גריניץ', localtime מתאימה ערכים אלו לזמן המקומי שבמחשבכם. וזאת בהנחה, כמובן, שמערכת ההפעלה שלכם מכוונת כראוי לאזור הזמן שלכם.

אנו נתבונן ב localtime, אולם gmtime עובדת בצורה זהה, ותומכת בסינטקס זהה לחלוטין, בהבדל היחיד, שהזמן המוחזר אינו מתוקן לאזור שלכם אלא לשעון גריניץ'.

הדרך הפשוטה ביותר להשתמש ב localtime היא בהקשר סקלרי. לדוגמא:

print scalar localtime(time);

מחזיר:

Wed Dec  8 10:16:31 1999

זכרו ש time מכוון לפי זמן שניה תקופתי (התאריך נשמר בספירת שניות מנקודה מסויימת); ולכן אפשר להשתמש ב localtime להדפסת גרסה ידידותית למשתמש של זמן תקופתי...לדוגמא:

print scalar localtime(420221050);

מחזיר:

Tue Apr 26 12:04:10 1983

אני מקווה שאתם כבר רואים את היעילות שבראיית הזמן על בסיס שניות. דמיינו לעצמכם לדוגמה שאתם יודעים את הזמן הנוכחי, ואתם רוצים להציג את התאריך בעוד 24 שעות. המשימה אינה פשוטה כפי שהיא נשמעת כיוון שבלוח השנה שלנו חלק מהתאריכים יעברו לחודש הבא, וחלקם אף לשנה הבאה. אנו לא צריכים לדאוג לכך, אלא בסך הכל אומרים שיום מכיל 24 שעות. שעה מכילה 60 דקות, ודקה מכילה 60 שניות, ולפיכך יום שלם מוכל מ 60*60*24, או 86400 שניות.

$now=time;
$tomorrow=$now+86400;
print scalar localtime($tomorrow);

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

הטבלה הבאה מסכמת כמה תקופות זמן ואת מקבילתם בזמן השניה התקופתי.

תקופות זמן המיוצגות בשניות החל מתקופת הראשון לינואר 1970

3600 שעה אחת
86400 יום אחד
604800

שבוע אחד

1209600 שבועיים
1814400 שלוש שבועות
2419200 חודש
14515200 שישה חודשים
2903404000 שנה אחת
290340400 עשור אחד

שאתם צריכים לדעת פרק המילניום: ניהול זמן ותאריך Perl ה
תוכן עניינים
הזמן בפרוסות

אודות
תוכן עניינים
פרק 1: ה Perl שאתם צריכים לדעת
פרק 2: קישור Perl לעמודי הרשת
פרק 3: שמירת מצב
פרק 4: HTML בחטף ותבניות (Templates) רשת
פרק 5: עיבוד וניתוח של עמודי רשת
פרק 6: להשתעשע עם בסיסי נתונים מקוונים:אקסס
פרק 7: המודל MySQL
פרק 8: להשתעשע בבסיסי נתונים - GUFE - החזית הכללית והשימושית
פרק 9: המילניום - ניהול זמן ותאריך
זמן ידידותי למשתמש  
הזמן בפרוסות  
להפוך את הזמן  
התעמלות עם Date::Manip  
התעמלות עם לוח שנה  
סיכום  
פרק 10: ניהול רשימות והאשים (Hashs)
פרק 11: הפניה להפניה
פרק 12: הכרות עם mod_perl