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

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

Tyler 01-10-15 14:19

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

מה שחשבתי לעשות זה לייצר מספר רנדומלי בין 1 ל12 שייצג את החודשים.
לייצר מספר רנדומלי בין 1 ל30 שייצג את מספרי הימים בחודש, ולבדוק במידה והחודש = 2 (פברואר) אז מספר הימים יהיה בין 1 ל28.
לייצר מספר רנדומלי בין 2016 ל2026 שייצג את השנים

ליצור 2 מערכים: אחד למספרי החודשים (1-12) ואחד לשמות החודשים בעברית (ינואר-דצמבר), ולהחליף ביניהם בעזרת str_ireplace.

ואז להדפיס תוצאה סופית של
קוד:

$final_date = $random_day.' ב'.$random_month_name.', '.$random_year;
מה אתם אומרים? יש דרך פשוטה יותר? מהירה יותר? יעילה יותר?

תודה.

נ.ב אשמח אם מישהו גם יעזור לי להוציא שעה רנדומלית בפורמט 24 שעות.

MasterNetwork 01-10-15 17:03

פורמט 24 שעות תעשה rand 24 וrand 60, אחי, אחלה רעיון בשביל תאריך ושעה רנדומלית.
מסקרן אותי למה אתה צריך את זה חח? אם אפשר כמובן לדעת..

Tyler 01-10-15 18:02

ציטוט:

נכתב במקור על ידי MasterNetwork (פרסם 897722)
פורמט 24 שעות תעשה rand 24 וrand 60, אחי, אחלה רעיון בשביל תאריך ושעה רנדומלית.
מסקרן אותי למה אתה צריך את זה חח? אם אפשר כמובן לדעת..

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

while1 01-10-15 20:52

חיפוש מהיר בגוגל הפנה לרעיון הבא (בנוגע לתאריך) -
http://stackoverflow.com/questions/1...ates-using-php

בנוגע לשעה, מיד עלה לי לראש הרעיון של sprintf.

מכאן לקוד הדרך כבר פשוטה יותר.

ההמלצה שלי (בעיקר בPHP) היא בד"כ - לא לשבור את הראש, אם אין צורך.
רוב הרעיונות והפתרונות כבר נימצאים בגוגל :)

אתה יכול לראות את הקוד עובד, כאן: http://while1.co.il/random_dates.php

קוד:

<?php

        // -------------------
        // EXAMPLE BY MATAN MIZRACHI / while1.co.il
        // -------------------
        $months = [       
                1 => "ינואר", 2 => "פברואר", 3 => "מרץ", 4 => "אפריל", 5 => "מאי", 6 => "יוני",
                7 => "יולי", 8 => "אוגוסט", 9 => "ספטמבר", 10 => "אוקטובר", 11 => "נובמבר", 12 => "דצמבר"
        ];

        // -------------------
        // RAND MONTH
        // -------------------
        $min_date = mktime(0,0,0,1,1,2000);
        $max_date = mktime(0,0,0,1,1,2020);
       
        $rand_date = mt_rand($min_date , $max_date);
       
        $rand_day = date("j" , $rand_date);
        $rand_month = date("n" , $rand_date);
        $rand_year = date("Y" , $rand_date);
       
        $rand_date_string = "{$rand_day} ב{$months[ $rand_month ]}, {$rand_year}";
       
        // -------------------
        // RAND TIME
        // -------------------
        $rand_time = sprintf("%02d:%02d" , mt_rand(0,23) , mt_rand(0,59));

        // -------------------
        // OUTPUT
        // -------------------
        echo "<div style='direction: rtl;'>";
        echo $rand_date_string . "<br />";
        echo $rand_time;
        echo "</div>";
       
?>

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

Tyler 01-10-15 21:33

ציטוט:

נכתב במקור על ידי while1 (פרסם 897728)
חיפוש מהיר בגוגל הפנה לרעיון הבא (בנוגע לתאריך) -
http://stackoverflow.com/questions/1...ates-using-php

בנוגע לשעה, מיד עלה לי לראש הרעיון של sprintf.

מכאן לקוד הדרך כבר פשוטה יותר.

ההמלצה שלי (בעיקר בPHP) היא בד"כ - לא לשבור את הראש, אם אין צורך.
רוב הרעיונות והפתרונות כבר נימצאים בגוגל :)

אתה יכול לראות את הקוד עובד, כאן: http://while1.co.il/random_dates.php

קוד:

<?php

        // -------------------
        // EXAMPLE BY MATAN MIZRACHI / while1.co.il
        // -------------------
        $months = [       
                1 => "ינואר", 2 => "פברואר", 3 => "מרץ", 4 => "אפריל", 5 => "מאי", 6 => "יוני",
                7 => "יולי", 8 => "אוגוסט", 9 => "ספטמבר", 10 => "אוקטובר", 11 => "נובמבר", 12 => "דצמבר"
        ];

        // -------------------
        // RAND MONTH
        // -------------------
        $min_date = mktime(0,0,0,1,1,2000);
        $max_date = mktime(0,0,0,1,1,2020);
       
        $rand_date = mt_rand($min_date , $max_date);
       
        $rand_day = date("j" , $rand_date);
        $rand_month = date("n" , $rand_date);
        $rand_year = date("Y" , $rand_date);
       
        $rand_date_string = "{$rand_day} ב{$months[ $rand_month ]}, {$rand_year}";
       
        // -------------------
        // RAND TIME
        // -------------------
        $rand_time = sprintf("%02d:%02d" , mt_rand(0,23) , mt_rand(0,59));

        // -------------------
        // OUTPUT
        // -------------------
        echo "<div style='direction: rtl;'>";
        echo $rand_date_string . "<br />";
        echo $rand_time;
        echo "</div>";
       
?>

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

ואו מתן, תודה ענקית!
קוד מעולה וכמו שאמרת לא צריך לשבור את הראש יותר מידי..
ממה שאני רואה בעצם השתמשת בכל הפונקציות הרגילות שנוגעות לתאריכים בPHP, והפלט גם ייצא בהתאם בלי כל התנגשות או סתירה (כמו ה30 בפברואר), ולאחר קבלת התאריך הפונקציה פשוט מחליפה את המספר של החודש בשם העברי שלו.

בדיוק מה שרציתי.:-)

anon 05-10-15 21:51

while1, לייק על השם ועל הסלוגן.


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

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