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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   תאריכים בהרשמה? (https://hosts.co.il/forums/showthread.php?t=47265)

X-T 10-06-07 15:18

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

Eran-s 10-06-07 15:31

חילוק לפי שניות... או לקחת נגיד date("Y") של זה ולחסר מזה את הנוכחי.

X-T 10-06-07 16:01

נגיד יש לי את התאריך 1.1.90, איך אני בדיוק משיג את הגיל שלו?

Oded 10-06-07 16:13

אם השנה היא מלאה (2007 ולא 07) אז אתה פשוט מפחית את השנה הנוכחית (שתשיג מdate)
מהשנה שבה נולד המשתמש...
במקרה של של שנה חסרה (07), אם היא גדולה או שווה ל-0, תשרשר אותה ל20,
ואם היא קטנה מ0 תשרשר אותה ל-19. ואז פשוט תחזסיר את השנה הנוכחית משנת המשתמש.
(זה יהיה תקף ל-93 השנים הקרובות :))
נגיד שתשתמש ב-date כך:
date("d/m/y")
אתה משתמש בפונקציה explode על המשתנה שבו הצבת את הפונק' date ועם הסימן המפריד,
ומשתמש בתא המערך מס' 2.

Eran-s 10-06-07 16:13

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

ד"א עדיף שתכניס למסד time ולא כתאריך, יש מספר דרכים להפוך את זה ל-time למשל שימוש בפונקציה strtotime

X-T 10-06-07 16:19

אני סה"כ רוצה שהמשתמש ירשם, אקבל את הגיל בצורה כזו: 16.3

BlueNosE 10-06-07 16:25

strtotime ?

Eran-s 10-06-07 16:38

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 496819)
strtotime ?

הוא מקבל קלט מהמשתמש במספרים לא בזמן time ולכן אני מציע לו שיכניס למסד כtime באמצעות פונקציה זו...

www.php.net/strtotime

PHP קוד:

echo strtotime("01/01/1997"); 


X-T 10-06-07 16:40

ציטוט:

נכתב במקור על ידי Eran-s (פרסם 496826)
הוא מקבל קלט מהמשתמש במספרים לא בזמן time ולכן אני מציע לו שיכניס למסד כtime באמצעות פונקציה זו...

www.php.net/strtotime

PHP קוד:

echo strtotime("01/01/1997"); 


הפלט: 852094800, איך מתקדמים מפה?

BlueNosE 10-06-07 17:14

ציטוט:

נכתב במקור על ידי Eran-s (פרסם 496826)
הוא מקבל קלט מהמשתמש במספרים לא בזמן time ולכן אני מציע לו שיכניס למסד כtime באמצעות פונקציה זו...

www.php.net/strtotime

PHP קוד:

echo strtotime("01/01/1997"); 


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

X-T 10-06-07 17:28

ציטוט:

נכתב במקור על ידי BlueNosE (פרסם 496848)
אממ, את האמת לא קראתי את התגובות שהגיבו לפני, והתגובה שלי הייתה הצעה להשתמש בפונקצייה ולא שאלה מה היא xD
השתמשתי בה במערכת מועדון חברים בעבר.

גם אני מתכנת כעת מועדון חברים, תוכל לעזור לי ?

BlueNosE 10-06-07 17:31

ציטוט:

נכתב במקור על ידי X-T (פרסם 496859)
גם אני מתכנת כעת מועדון חברים, תוכל לעזור לי ?

בפרטי אם אפשר.

Elad-A 10-06-07 17:35

תנסה ככה:

PHP קוד:

$day 5;
$month 6;
$year 1990;
$age mktime(date('d') , date('m') , date('Y')) - mktime($day $month $year);
echo 
number_format($age 31536000 1); 


X-T 10-06-07 17:49

ציטוט:

נכתב במקור על ידי Elad-A (פרסם 496868)
תנסה ככה:

PHP קוד:

$day 5;
$month 6;
$year 1990;
$age mktime(date('d') , date('m') , date('Y')) - mktime($day $month $year);
echo 
number_format($age 31536000 1); 


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

Elad-A 10-06-07 17:51

טעות שלי, תנסה ככה:

PHP קוד:

$day 5
$month 6
$year 1990
$age time() - mktime($day $month $year); 
echo 
number_format($age 31536000 1); 


X-T 10-06-07 17:52

ציטוט:

נכתב במקור על ידי Elad-A (פרסם 496881)
טעות שלי, תנסה ככה:

PHP קוד:

$day 5
$month 6
$year 1990
$age time() - mktime($day $month $year); 
echo 
number_format($age 31536000 1); 


עדיין משום מה...

RS324 10-06-07 17:55

strtotime - פונקציה שזוללת משאבים בצורה מטורפת...

לא הייתי ממליץ לך להשתמש בה...

ו X-T , המשתמש ELAD כתב לך חלק מהסקריפט - כלומר הראה לך את הדרך, אם הסקריפט שלו לא עובד בצורה שהוא התכוון, יש לך את הדרך תשתמש בה ותתקן
אל תבקש ממשתמשים אחרים לתקן עבורך - כי זה שווה ערך לבקשת קודים......
ואסור לבקש קודים בחוקים...אז תסיק מסקנות לבד

Elad-A 10-06-07 17:57

אני לא יודע מה איתך אבל לי זה עובד בצורה טובה..

X-T 10-06-07 18:01

ציטוט:

נכתב במקור על ידי RS324 (פרסם 496891)
strtotime - פונקציה שזוללת משאבים בצורה מטורפת...

לא הייתי ממליץ לך להשתמש בה...

ו X-T , המשתמש ELAD כתב לך חלק מהסקריפט - כלומר הראה לך את הדרך, אם הסקריפט שלו לא עובד בצורה שהוא התכוון, יש לך את הדרך תשתמש בה ותתקן
אל תבקש ממשתמשים אחרים לתקן עבורך - כי זה שווה ערך לבקשת קודים......
ואסור לבקש קודים בחוקים...אז תסיק מסקנות לבד

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

ELAD בנאדם, הבנתי את הבעיה, היה חייב בחודשים ובימים להוסיף 0 לדוגמא 09/04.

Elad-A 10-06-07 18:02

זה בגלל הפונקציה number_format היא מעגלת את החודש.
תנסה להוריד ותראה איך זה יצא.

Eran-s 10-06-07 20:51

ציטוט:

נכתב במקור על ידי RS324 (פרסם 496891)
strtotime - פונקציה שזוללת משאבים בצורה מטורפת...

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

RS324 10-06-07 21:11

ציטוט:

נכתב במקור על ידי Eran-s (פרסם 497087)
רותם, שוב פעם אני מבקש כמו אחרים בעבר שתוכיח טענות כאלו שלך,
האם היית קומפיילר בעבר? טענות כאלה יש להוכיח ולא להגיד "זה לוקח את המספר הופך אותו לזה וזה...בלה בלה".

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

תריץ בלולאה 1000 פעם את הפעולה הבאה :

PHP קוד:

for ($i =0$i <= 1000;$i++)
{
    echo 
strtotime('-1 day');


ולעומת זאת , תריץ 1000 פעם את הפעולה הבאה :

PHP קוד:

for ($i =0$i <= 1000;$i++)
{
    echo (
time()-86400);


ותעשה בדיקות של שניות בעזרת MICROTIME
ותראה כמה זמן לוקח ריצה של 1000 פעמים עבור כל דבר.

Eran-s 10-06-07 21:12

ציטוט:

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

תריץ בלולאה 1000 פעם את הפעולה הבאה :

PHP קוד:

for ($i =0$i <= 1000;$i++)
{
    echo 
strtotime('-1 day');


ולעומת זאת , תריץ 1000 פעם את הפעולה הבאה :

PHP קוד:

for ($i =0$i <= 1000;$i++)
{
    echo (
time()-86400);


ותעשה בדיקות של שניות בעזרת MICROTIME
ותראה כמה זמן לוקח ריצה של 1000 פעמים עבור כל דבר.

איזו השוואה בין פעולה פשוטה למורכבת,
תריץ בדיקה ל-strtotime ול-mktime ודווח לי על התוצאות...


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

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