![]() |
חישוב כמות הימים עד היום הולדת הבא
אוקי אני מנסה כבר כמה זמן,
והגעתי לתוצאה כזאת: PHP קוד:
אבל אני לא יודע מה הטעות שלי .. תודה לעזורים, אגב אני בטוח שאני קרוב |
אני לא בטוח מה הולך פה, אבל הפרמטרים של mktime הם seconds,minutes,hours,month,day,year, לא day,month,year.
|
סבבה תודה רבה,
יש לי תוצאה קוד שמחשב את הימים כמו שצריך, אך הייתי רוצה לראות עוד דוגמאות (בטוח שיש) |
הכי פשוט, הכי חכם, הכי יעיל (הורדתי את הקטע של ההצבה של הגיל במשתנה, ושל החישוב בימים במשתנה, ניתן להוסיף את זה):
PHP קוד:
בהצלחה |
תודה רבה אחי,
אני יעבור על הקוד יראה איך הוא בנוי ואם הוא פועל, כרגע אשמח לעוד דוגמאות עריכה: הבנתי איך זה הולך :) תודה שי אפשר לנעול |
מה יש לכם? למה להסתבך עם כל החישובים הארוכים פה?
יש לך את הפונקציה strtotime - תכניס לה איזה מבנה תאריך שתרצה, ופשוט תוריד מה-time הנוכחי משו כזה: PHP קוד:
|
ציטוט:
היא אחת הפונקציות היותר בזבזניות שקיימות, ואתה מוזמן לחפש על זה עוד מידע ולהבין למה עדיף להשתמש בmktime. |
ציטוט:
|
ציטוט:
|
הפונקציה strtotime ממש לא יעילה, והיא חוסכת פה בסך הכל שורה אחת. זה משמעותי בעינייך? זה נכון בעינייך? כי אם כן זה בעייתי...
מה גם שהפקודה שרשמת לא קשורה בכלל, מה שחישבת זה כמה ימים עברו מאז התאריך שהוכנס, איך זה קשור? |
תקרא על
http://il2.php.net/date_diff זו פונקציה חדשה אני לא בטוח באיזה גירסאות של PHP היא תעבוד אתה יכול למחפש מימוש שלה ברשת, או להשתמש בMYSQL שיש לו פונקציה דומה. http://dev.mysql.com/doc/refman/5.5/...ction_datediff |
ציטוט:
תאמין לי שאני תמיד מתחשב ביעילות, אבל לא מזמן התחלתי לעבוד בתור מתכנת PHP ואני מגלה שזה לא מה שמשנה יותר מידי לאנשים בד"כ, הם רוצים את הגמישות - הפונקציה הזאת נותנת לך הרבה יותר גמישות מ-mktime וכן Shay Falador, טעות שלי - אבל פשוט תוריד את השנה מהערך שקיבלת וזה יתן לך את הזמן לשנה הבאה אבל זה לא הרעיון - הרעיון הוא שאנשים פה (וגם אני הייתי) יותר מידי מקובעים על העניין של ה"יעילות" כשזה נוגע בפרטים לא כאלה חשובים. לא תמיד צריך ללכת עם זה כזה רחוק כשבמקרה של האתר זה לא כזה חשוב. ותסכים איתי שאם האתר היה ברמה כזאת מטורפת של כניסות, אז השאלה הזאת לא הייתה מגיעה לפורום הזה פה |
התגובה הרביעית בערך
אמרתי שהסדרתי .. אפשר לנעול :S |
ציטוט:
ציטוט:
|
שוב - כי זה נותן לך אחלה של גמישות בהרבה מקרים.. מה לעשות, יש סיבה למה הפונקציות האלה דורשות הרבה משאבים.
ולצורך העניין בשפת הטמפלייט שלך שאתה אומר שהיא לא הכי יעילה - אני מאמין שיכלת לעשות אותה יותר יעילה, אבל במחיר של פחות גמישות בחלק מהמקרים.. (כמובן רק מתוך הנחה כי אין לי מושג איך עשית אותה) אז תחשוב רגע, למה עשית את זה ככה? |
אני אומר - אני לא דוגל בביצועים על חשבון נוחות. במקרה פה, לדוגמא, יכולתי לכתוב את הטמפלט בקוד PHP פשוט כמו בWordpress ודומיו. בחרתי להמציא לעצמי שפה שתקל עלי את העבודה, במחיר של זמן טעינה (לא ארוך במיוחד אמנם, אבל בכל זאת זמן).
הבעיה פה היא שאתה מציג משהו אחר. היה פה מקרה פרטי שבו יש 2 אפשרויות: להשתמש בפונקציה שזוללת משאבים ולחסוך שורת קוד, או לכתוב 2 שורות קוד ולהעמיס פחות על השרת. לדעתי, במקרה כזה, אין הרבה התלבטות, והאפשרות השניה מנצחת בלי ספק |
ואתה שוכח את החלק העיקרי פה, שאני אתן לך תזכורת אליו מההודעה הראשונה:
PHP קוד:
את התאריך הוא מקבל מהמשתמש - אז למה לחייב את המשתמש על דרך כתיבה מסויימת? |
אממ.. האמת שלא שמתי לב לזה.. אבל סתם כי אף אחד לא באמת רושם "Tomorrow, 4:00 PM". והדיון היה על יום הולדת - שבכמה פורמטים זה כבר יכול להיות? אתה יכול לחפש מה הדלימיטר שהמשתמש שם (כל דבר שהוא לא מספר) ולפצל ל3, ועדיין לחסוך במשאבים
|
ואם המשתמש הכניס שהיומולדת שלו ב12 לינואר?
|
אז הוא משתמש מוזר. ואגב פה גם הפונקציה הזאת לא תעזור, אתה תצטרך להחליף את "12 לינואר" ל"January 12", וככל שאתה מתחכם עם הוריאציות זה נהיה יותר מורכב לתרגם את זה. בקיצור עדיף לבקש מהמשתמש פה פורמט קבוע (גמיש ככל שיהיה) וזהו לדעתי
|
סתם נתתי דוגמא של "ינואר" בתכלס הרעיון היה שהמשתמש הכניס נגיד בתאריך שלו 18/1 או משו בסגנון כי הוא לא רצה לציין שנה..
אבל כבר סתם חפרנו. בעקרון הרעיון הוא שאפשר להשתמש בשתיהן, זאת שאני הצגתי יותר גמישה וחוסכת פירוק של התאריך למשתנים וערכים נפרדים אבל פחות יעילה.. שכל אחד יעשה איך שנוח לו ושיחליט כמה הוא צריך להתחשב ביעילות |
כל הזמנים הם GMT +2. הזמן כעת הוא 20:19. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ