לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

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



  #2  
ישן 03-10-2006, 17:01
  DCD DCD אינו מחובר  
 
חבר מתאריך: 17.05.05
הודעות: 7,321
בתגובה להודעה מספר 1 שנכתבה על ידי liran123 שמתחילה ב "חישוב זמן"

אני עשיתי דבר כזה (של היומולדת) לפני הרבה זמן כתוספת למערכת IPB.

אם אתה רוצה תסתכל בקוד אולי זה יעזור לך:

קוד PHP:
 $no_MID_check $ibforums->input['MID'];
$ibforums->input['MID'] = intval($ibforums->input['MID']);
$DB->query("SELECT bday_year, bday_month, bday_day FROM ibf_members WHERE id=".$ibforums->input['MID']);
$info $DB->fetch_row();

// fetch date & use numeric dates
$datenow getdate();

// calculate the months difference (months remains to his birthday!)
if ($datenow['mon'] < $info['bday_month'])
    {    
$m_difference $info['bday_month'] - $datenow['mon'];    }
else if (
$datenow['mon'] > $info['bday_month'])
    {    
$m_difference = (12-$datenow['mon']) + $info['bday_month'];    }
else
    {    
$m_difference 0;    }

// calculate the last day of month 
$lastday mktime(000$info['bday_month'], 0$info['bday_year']);
$lastday intval(strftime("%d"$lastday));

if (
$datenow['mday'] < $info['bday_day'])
    {    
$d_difference $info['bday_day'] - $datenow['mday'];    }
else if (
$info['bday_day'] < $datenow['mday'])
    {    
        
$d_difference = ($lastday $datenow['mday']) + $info['bday_day'];    
        --
$m_difference;
    }
else
    {    
$d_difference 0;    }


// $d_difference = $lastday - $info['bday_day'];

// Create image
$img_w 300;
$img_h 100;
// $image = @imagecreatefromjpeg('user_birthday.jpg');
$image imagecreatetruecolor($img_w$img_h);
$background imagecolorallocate($image255255255);
imagefill($image00$background);
if (
$no_MID_check AND $info['bday_month'])
    {    
$string "Month: ".$m_difference." & Day: ".$d_difference;    }
else if (! 
$no_MID_check AND $info['bday_month'])
    {    
$string "No MID";    }
else if ( ! 
$info['bday_month'] AND $no_MID_check)
    {    
$string "No Birthday found";    }
else
    {    
$string "Some error...nothing found";    }

$black imagecolorallocate($image000);
ImageString($image535$string$black);

header('Content-type: image/JPEG');
imagejpeg($image); imagedestroy($image); 


ד"א אני לא בטוח שזה עובד טוב 100% ... אבל ככה בעיקרון צריך לעשות את מה שאתה רוצה
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
  #3  
ישן 04-10-2006, 11:58
  Fixxxer Fixxxer אינו מחובר  
 
חבר מתאריך: 21.09.02
הודעות: 408
בתגובה להודעה מספר 1 שנכתבה על ידי liran123 שמתחילה ב "חישוב זמן"

החישוב נעשה בצורה יחסית פשוטה, ברגע שאתה מבין אותה. אתה משתמש ב UNIX TIMESTAMP בשביל לבצע את החישוב.

עכשיו, בשביל שנקבל את הזמן הנותר בין התאריכים שאנחנו רוצים להשוות ביינהם קודם כל יש צורך בפעולת חיסור פשוטה, בין הזמן העתידי לזמן העכשוי. לדוגמא:
קוד PHP:
 $time mktime(00010172006) - time(); 

(אפשרי להשתמש בפונקציות אחרות אם זה יותר מתאים למטרה שלך, רק חשוב שהפונקציות יחיזרו לך UNIX TIMESTAMP.)

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

יהיה יותר קל להבין את זה דרך דוגמא:
אנחנו ניקח את המשתנה $time ונחלק אותו בשבוע(זכור שהמשתנה מכיל את מספר השניות בן התאריכים, ולכן כל התעסקות איתו צריכה ליהיות בשניות), כאשר הוא מוצגת בשניות.
שבוע בשניות - 60*60*24*7 (60שניות * 60 דקות * 24 שעות * 7 ימים).
קוד PHP:
 $weeks floor($time/604800

חשוב לזכור להשתמש בפונקציה floor כדי שיצא מספר שלך, ולא שבר.
לאחר שחישבנו כמה שבועות נותרו, צריך להוריד את מספר השבועות הזה מהמשוואה כדי שהיים לא יכללו גם את השבועות. לכן נבצע את הפעולה הבאה:
קוד PHP:
 $time %= 604800 

מה שהפעולה הזאת עולה (מוד, במידה ואתה לא מכיר) היא מחזירה את השארית של חילוק $time בערך 604800, ושומרת אותו בתוך $time. הפעולה שוות ערך ל(במידה ואתה לא מכיר את הקיצור):
קוד PHP:
 $time $time%604800 

ומכן ממשיכים הלאה. ימים (60*60*24), שעות (60*60) ואחרי שאתה מוריד את השעות, נשארות לך השניות הנותרות.

תהנה, ובהצלחה
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 18:22

הדף נוצר ב 0.08 שניות עם 11 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר