הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [PHP] חישוב גיל לפי תאריך (תבנית: DD/MM/YYYY) (https://hosts.co.il/forums/showthread.php?t=38559)

sUP 24-01-07 16:38

[PHP] חישוב גיל לפי תאריך (תבנית: DD/MM/YYYY)
 
השאלה בכותרת..|קורץ|

meshuga 24-01-07 16:56

מה הבעיה?
תחסר את השנה הנוכחית פחות השנה שהוא נולד...
דוגמא לשימוש (רק שפה זה בודק אם כבר עברה היום הולדת השנה ואם כן אז זה הגיל + 1 כי זה ליום הולדת הבאה):
http://www.sbsil.net/birthday/23.5.1988.gif

BlueNosE 24-01-07 16:57

עשיתי פעם
פשוט אתה עושה strtotime (מראש שההכנסה תהיה בפורמט המתאים לזה)
ואז עושה את התוצאה פחות time(), ומחלק לדוגמא ב(60 * 60 * 24 * 365).

עריכה:
שי אבל אם הוא רוצה נניח "וחצי"?

meshuga 24-01-07 17:00

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 411683)
עשיתי פעם
פשוט אתה עושה strtotime (מראש שההכנסה תהיה בפורמט המתאים לזה)
ואז עושה את התוצאה פחות time(), ומחלק לדוגמא ב(60 * 60 * 24 * 365).

עריכה:
שי אבל אם הוא רוצה נניח "וחצי"?

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

אני יהמר ויגיד שאתה מנסה לעשות סקריפט יום הולדת...כמו שאני הראתי בתגובה הקודמת?

BlueNosE 24-01-07 17:03

ציטוט:

נכתב במקור על ידי meshuga (פרסם 411684)
אפשר לחשב עם חודשים.
אבל אם באמת רוצים להיות ממש מדוייק..אפשר בדרך שלך..ואם הולכים בדרך שלך...אפשר להשתמש גם בmktime

אני יהמר ויגיד שאתה מנסה לעשות סקריפט יום הולדת...כמו שאני הראתי בתגובה הקודמת?

חח משהו כזה
יש לך דרך יותר יעילה?

meshuga 24-01-07 17:07

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 411689)
חח משהו כזה
יש לך דרך יותר יעילה?

בשביל סקריפט יום הולדת?..

אם כן..השתמשתי בערך במה שהראת כאן..חוץ מהחישוב הגיל.......
הימים זה לחלק ב60*60*24 השעות זה השארית של מה שנשאר מהימים חלקי 60*60 וכו' וכו'..
אני לא רואה הרבה דרכים יותר יעילות..למרות שיש איזה פונקציה לא רעה בPHP שעושה חלק מהפירוק הזה לבד..אני העדפתי ללכת על הדרך הזאת...;)

עריכה:
התבלבלתי, הפונקציה שאמרתי עושה פירוק אחר...בכל זאת...כתבתי איך עשיתי את שלי.

RS324 24-01-07 17:55

יהיה הכי פשוט זה לעשות ככה :

כשהמשתמש מכניס את התאריך של היומהולדת שלו להפוך את זה לזמן לינוקס בעזרת MKTIME
ואז תמיד לחשב לעשות
time()-$dbtime

ואז עם date אתה תשיג את כל הפרמטרים הנחוצים.

sUP 24-01-07 21:10

ציטוט:

נכתב במקור על ידי RS324 (פרסם 411732)
יהיה הכי פשוט זה לעשות ככה :

כשהמשתמש מכניס את התאריך של היומהולדת שלו להפוך את זה לזמן לינוקס בעזרת MKTIME
ואז תמיד לחשב לעשות
time()-$dbtime

ואז עם date אתה תשיג את כל הפרמטרים הנחוצים.

אבל זה עדיין לא עוזר לי להגיע לגיל
או שלא הבנתי אותך? |?|

זה פשוט באתר ללקוח להציג גיל משתמש
ודי חשוב לדייק בזה.. כי בוא נניח הוא נולד ב 10.05.1989
אם אני מחשב רק תשנה זה כותב שהוא בן 18
אבל אנחנו רק בסוף ינואר.. יש לו עוד 4 חודשים עד לזה אז זה צריך להציג 17 חח|Lol|

קיצר הסתבכתי פה עם עצמי =\

עזרו לי בבקשה:-)

BlueNosE 24-01-07 21:44

אתה לוקח את הזמן שהוא נולד:
עושה לו date ומשיג את הdd/mm (או ע"י SUBSTR).
לזמן של עכשיו אתה עושה אותו דבר: dd/mm (כל דבר בנפרד).
אתה משווה: אם mm של התאריך לידה גדול או שווה לmm של עכשיו,
ואם dd של התאריך לידה גדול או שווה לdd של התאריך עכשיו - אפשר להגיד לו מזל טוב.

Eli-Hai 24-01-07 21:54

BlueNosE, למה substr? אפשר להשתמש ב-explode.
PHP קוד:

$current_date explode("-"date("d-m-y"));
$birthday_date explode("."$_GET["date"]);

$current_date[0]; // day
$current_date[1]; // month
$current_date[2]; // year 



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

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