הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 22-12-10, 13:17   # 1
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

חישוב כמות הימים עד היום הולדת הבא

אוקי אני מנסה כבר כמה זמן,
והגעתי לתוצאה כזאת:
PHP קוד:
<?php
    $day 
= @htmlspecialchars($_GET['day']);
    if(
$day)
    {
        list(
$day$month$year) = explode("/"$day);
        
$mkt mktime(000$day$month$year);
        
$tim time();
        
$age date("Y") - $year;
        
$math round(time() - $mkt);
        
$final ceil((($month || $day 0) ? $math 365 $math 1) / 86400);
        
$finalResult round($final - ($age 365));
        echo 
"<strong>" $finalResult " Days.<br /> your " .$age" years old.</strong>";
    }
?>
אני יודע שזה לא נכון ..
אבל אני לא יודע מה הטעות שלי ..
תודה לעזורים, אגב אני בטוח שאני קרוב
  Reply With Quote
ישן 22-12-10, 15:33   # 2
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

אני לא בטוח מה הולך פה, אבל הפרמטרים של mktime הם seconds,minutes,hours,month,day,year, לא day,month,year.
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 22-12-10, 16:58   # 3
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

סבבה תודה רבה,
יש לי תוצאה קוד שמחשב את הימים כמו שצריך,

אך הייתי רוצה לראות עוד דוגמאות (בטוח שיש)
  Reply With Quote
ישן 22-12-10, 20:35   # 4
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

הכי פשוט, הכי חכם, הכי יעיל (הורדתי את הקטע של ההצבה של הגיל במשתנה, ושל החישוב בימים במשתנה, ניתן להוסיף את זה):
PHP קוד:
<?php
if(isset($_GET['dob'])) {
    
$dob explode('/'$_GET['dob']);
    
$time_to_birthday mktime(000$dob[1], $dob[0], date('Y')) - time();
    if(
$time_to_birthday <= 0)
        
$time_to_birthday += 86400 365;
    echo 
'<strong>'.ceil($time_to_birthday 86400).' days are left until your next birthday. You are '.(date('Y') - $dob[2]).' years old.</strong>';
}
אפשר לקצר את זה עוד יותר אבל זה על חשבון יעילות, זו כנראה הדרך ההגיונית ביותר.

בהצלחה
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
ישן 23-12-10, 07:49   # 5
Haimz
חבר וותיק
 
מיני פרופיל
תאריך הצטרפות: Sep 2010
הודעות: 1,221

Haimz לא מחובר  

תודה רבה אחי,
אני יעבור על הקוד יראה איך הוא בנוי ואם הוא פועל,
כרגע אשמח לעוד דוגמאות


עריכה:
הבנתי איך זה הולך
תודה שי
אפשר לנעול

Last edited by Haimz; 23-12-10 at 08:03..
  Reply With Quote
ישן 23-12-10, 23:31   # 6
Itay
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 564

Itay לא מחובר  

מה יש לכם? למה להסתבך עם כל החישובים הארוכים פה?
יש לך את הפונקציה strtotime - תכניס לה איזה מבנה תאריך שתרצה, ופשוט תוריד מה-time הנוכחי
משו כזה:
PHP קוד:
$time ceil((time() - strtotime($_GET['date'])) / (60*60*24)); 

Last edited by Itay; 23-12-10 at 23:34..
  Reply With Quote
ישן 24-12-10, 15:01   # 7
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

ציטוט:
נכתב במקור על ידי Itay צפה בהודעה
מה יש לכם? למה להסתבך עם כל החישובים הארוכים פה?
יש לך את הפונקציה strtotime - תכניס לה איזה מבנה תאריך שתרצה, ופשוט תוריד מה-time הנוכחי
משו כזה:
PHP קוד:
$time ceil((time() - strtotime($_GET['date'])) / (60*60*24)); 
אתה לא יודע בכלל כמה הפונקציה הזאת אוהבת לאכול לך את המשאבים.
היא אחת הפונקציות היותר בזבזניות שקיימות, ואתה מוזמן לחפש על זה עוד מידע ולהבין למה עדיף להשתמש בmktime.
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 24-12-10, 17:18   # 8
Itay
חבר מתקדם
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
גיל: 35
הודעות: 564

Itay לא מחובר  

ציטוט:
נכתב במקור על ידי BlueNosE צפה בהודעה
אתה לא יודע בכלל כמה הפונקציה הזאת אוהבת לאכול לך את המשאבים.
היא אחת הפונקציות היותר בזבזניות שקיימות, ואתה מוזמן לחפש על זה עוד מידע ולהבין למה עדיף להשתמש בmktime.
ברור שהיא אוכלת משאבים, אני לא מצפה מפונקציה שאני יכול להגיד לה "שעה 3 וחצי עוד שבועיים" שהיא תיתן לי תשובה בלי הרבה זמן עיבוד ומשאבים, אבל ברוב המקרים זה לא כזה משנה - אם זה בעמוד שנכנסים אליו מאות אלפים ביום אז הייתי אומר בסדר, אבל עד אז - זאת אחלה של פונקציה שהיעילות שלה במקרה הזה לא כ"כ משנה
  Reply With Quote
ישן 24-12-10, 18:14   # 9
BlueNosE
אין כמו ב127.0.0.1
 
BlueNosE's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: כפ"ס
גיל: 32
הודעות: 4,086

BlueNosE לא מחובר  

ציטוט:
נכתב במקור על ידי Itay צפה בהודעה
ברור שהיא אוכלת משאבים, אני לא מצפה מפונקציה שאני יכול להגיד לה "שעה 3 וחצי עוד שבועיים" שהיא תיתן לי תשובה בלי הרבה זמן עיבוד ומשאבים, אבל ברוב המקרים זה לא כזה משנה - אם זה בעמוד שנכנסים אליו מאות אלפים ביום אז הייתי אומר בסדר, אבל עד אז - זאת אחלה של פונקציה שהיעילות שלה במקרה הזה לא כ"כ משנה
איך אתה יכול לומר דבר כזה? זה רק משיקולי עצלנות. מה כל כך קשה להמיר את "3:30 עוד שבועיים" ל"time() + שבועיים" -> "מה הנק' זמן באותו יום בשעה 3:30"? החסכון משמעותי והשינוי לא גדול.
__________________
עומר,
admin [@] rely.co.il

בניית אתרים Rely

סלנג מילון סלנג utter
  Reply With Quote
ישן 24-12-10, 19:43   # 10
Shay Ben Moshe
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2007
הודעות: 1,397

Shay Ben Moshe לא מחובר  

הפונקציה strtotime ממש לא יעילה, והיא חוסכת פה בסך הכל שורה אחת. זה משמעותי בעינייך? זה נכון בעינייך? כי אם כן זה בעייתי...
מה גם שהפקודה שרשמת לא קשורה בכלל, מה שחישבת זה כמה ימים עברו מאז התאריך שהוכנס, איך זה קשור?
__________________
שי בן משה - בונה אתרים
חותך אתרים, ומתכנת צד לקוח וצד שרת.
  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 10:53.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ