תאריכים

yair24

Member
תאריכים

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

yair24

Member
הנה פונקציה שכתבתי

מה שהפונקציה עושה זה דבר כזה: היא מקבלת את התאריך הישן ביותר שקיים במסד. ואת התאריך החדש ביותר שקיים במסד. מה שהיא עושה זה מדפיסה את כל החודשים מהתאריך הישן ועד לחדש. הנה הפונקציה:
function ParseDates() { $startdate=GetLinkDate(1); $enddate=GetLinkDate(0); echo "<span dir='ltr'>"; $i=0; $nextmonth = $startdate; while( $nextmonth <= $enddate ) { $nextmonth = mktime(0, 0, 0, date("m",$startdate)+$i, date("d",$startdate), date("Y",$startdate)); echo date("M",$nextmonth). " "; $i++; } echo "</span>"; }​
השאלה שלי היא האם אתם רואים דרך לייעל את הפונקציה הזו? האם יש דרך יותר נורמאלית לעשות את זה? יאיר
 

yair24

Member
בבקשה עזרה....

אם יש למישהו רעיון איך לצאת מהתסבוכת שנכנסתי אליה: יש לי מסד נתונים שמכיל לינקים, לכל לנק יש תאריך התאריך מיוצג על ידיד TIMESTAMP. עכשיו, מנהל האתר יכול להוסיף כמה לינקים שהוא רוצה כל יום. וזה מכניס אותם ורושם את התאריך. הבעיה שלי היא כזאת: אני מנסה עכשיו לעשות ארכיון שמנוהל לפי תאריכים, כלומר מציג את השנה ואת כל החודשים שבהם יש הודעות. כשלוחצים על חודש זה צריך להציג את כל הימים שבהם יש לינקים כלומר אם קיים יום מסויםפ שמנהל האתר לא הוסיף לינק אז זה אמור לא להראות את היום הזה. כנ"ל לגבי חודש, אם קיים חודש מסוים שבו מנהל האתר לא הוסיף לינק אז אותו חודש לא מופיע. מה שעשיתי זה דבר כזה:
$result=mysql_query("SELECT DISTINCT TheDate FROM linkstab WHERE TheDate < $endyear AND TheDate > $startyear ORDER BY TheDate");​
המשתנים ENDYEAR וSTARTYEAR הם משתנים שמגיעים לפונקציה כפרמטרים ומייצגים את הTIMESTAMP של שתי שנים. התוצאה של השאילתא הזו מביאה לי את כל הרשומות שמכילות את התאריכים בין שתי השנים הרצויות, מה שאני לא יודע לעשות זה איך אני יכול עכשיו לעשות כאילו DISTINCT לפי החודשים ואחרי זה לפי הימים, כי הרי נגיד שהשאילתא הזו החזירה לי 180 תוצאות מבין ה180 תוצאות האלה אני צריך לדעת איזה חודש לא קיים ואיזה יום לא קיים... נראה לי שצריך שינוי במסד לא? האם אני צריך להוסיף 3 עמודות של חודש יום ושנה ואז לעשות את המיון לפיהם? מה דעתכם? יאיר
 

yair24

Member
למען האמת זה היה יותר קל ממה

שחשבתי... עשיתי עמוד שמעדכן את המסד ומוסיף לשלושת השדות החדשים את התרגום של הTIMESTAMP לחודש, שנה ויום. ואחרי שהוספתי את זה כבר לא היתה לי בעיה למיין לפי ימים חודשים שנים ולראות בדיוק איזה לינקים קיימים ולא קיימים במסד. אם יש לכם הערות על זה (לגבי זמן ביצוע או יעילות הרעיון וכו') אני אשמח לשמוע אותם. יאיר
 
למעלה