نحوه مقایسه تاریخ در PHP
وقتی در حال ایجاد افزونه های رزرو و زمان بندی رویدادها یا وب سایت ها در PHP هستید، مقایسه تاریخ ها ضروری می شود. بسته به نحوه پیاده سازی موارد، کاربردهای بسیار دیگری نیز دارد. به عنوان مثال، ممکن است از آن برای ایجاد رویدادهای تبلیغاتی حساس به زمان در اسکریپت های PHP خود استفاده کنیم. php دارای توابع و روش های اختصاصی است که می توانید از آن ها برای مقایسه تاریخ هنگام نوشتن کد سبک رویه ای یا شی گرا استفاده کنید. در این آموزش، ما هر دو را مورد بحث قرار می دهیم. با ما تا آخر آموزش نحوه مقایسه تاریخ در PHP همراه باشید.!
آموزش نحوه مقایسه تاریخ در PHP مرحله به مرحله
مقایسه تاریخ در PHP (سبک شی گرا)
یک کلاس DateTime در PHP وجود دارد که می توانید از آن برای ایجاد اشیاء DateTime استفاده کنید. می توانید یک رشته تاریخ/زمان معتبر به همراه یک آرگومان منطقه زمانی اختیاری برای ایجاد یک شی DateTime به آن ارسال کنید. در اینجا چند نمونه هستند:
<?php $past = new DateTime("18 May 2021"); $now = new DateTime("now"); $dist_past = new DateTime("2002-09-21 18:15:00"); $dist_future = new DateTime("12-09-2036"); ?>
می توانید از عملگرهای مقایسه ساده در این اشیاء DateTime برای مقایسه تاریخ ها در حال حاضر و بررسی درست یا نادرست بودن مقدار بازگشتی استفاده کنید.
<?php $past = new DateTime("18 May 2021"); $now = new DateTime("now"); $dist_past = new DateTime("2002-09-21 18:15:00"); $dist_future = new DateTime("12-09-2036"); if($past < $now) { echo 'The first date is in the past.'; } // Output: The first date is in the past. if($past > $dist_past) { echo 'The third date is in the distant past.'; } // Output: The third date is in the distant past. if($dist_future > $now) { echo 'The fourth date is in the future.'; } // Output: The fourth date is in the future. ?>
تفاوت تاریخ در PHP (سبک شی گرا)
گاهی اوقات، ممکن است بخواهید هنگام مقایسه تاریخ اطلاعات بیشتری به دست آورید. روش ها و توابع اختصاصی در PHP برای محاسبه تفاوت بین تاریخ ها وجود دارد.
هنگامی که اشیاء DateTime خود را ایجاد کردید، می توانید متد diff () را روی یک شی فراخوانی کرده و تاریخ دیگر را برای محاسبه تفاوت بین تاریخ ها ارسال کنید. این یک شی DateInterval را به شما باز می گرداند.
به خاطر داشته باشید که تاریخی که در آن diff () را فراخوانی کرده اید، از تاریخی که به این روش منتقل می شود، کم می شود. با استفاده از متد format () می توانید تفاوت را به هر شکلی که دوست دارید بعد از آن قالب بندی کنید. در این جا چند نمونه آورده شده است:
<?php $last = new DateTime("25 Dec 2020"); $now = new DateTime("now"); $next = new DateTime("25 Dec 2021"); $days_last = $last->diff($now); $days_next = $now->diff($next); echo $days_last->format('%a days').' since last Christmas.'; // Output: 170 days since last Christmas. echo $days_next->format('%a days').' to next Christmas.'; // Output: 194 days to next Christmas. ?>
برای کنترل نحوه خروجی PHP از تفاوت، می توانید پارامترهای زیادی را به متد format () منتقل کنید. در مثال ما ، از٪ r برای تعیین نسبیت تفاوت استفاده کردیم. مقدار مثبت بدین معناست که تاریخ منتقل شده به diff () در مقایسه با تاریخی است که آن را نامیده است. مقدار منفی بدین معناست که تاریخ منتقل شده به diff () در مقایسه با تاریخی که آن را نامیده است در گذشته است. ٪ string برای نشان دادن تعداد روزها و ساعت ها استفاده می شود. همچنین می توانید از رشته های دیگر مانند٪ H ،٪ I و٪ S برای نمایش ساعت، دقیقه و ثانیه استفاده کنید. همه این کاراکترهای قالب را می توان در اسناد روش format () یافت.
مقایسه تاریخ در PHP (روش رویه)
اگر ترجیح می دهید کد سبک رویه ای بنویسید، می توانید از مجموعه متفاوتی از توابع استفاده کنید. در این حالت، می توانیم از تابع date_create () برای ایجاد اشیاء DateTime خود از رشته عبور شده استفاده کنیم. متغیرهایی که تعریف می کنید همچنان اشیاء DateTime را ذخیره می کنند، اما آنها به صراحت توسط شما نمونه گیری نمی شوند.
از آن جایی که ما هنوز با اشیاء DateTime سر و کار داریم، عملگرهای معمولی مقایسه به ما اجازه می دهند این تاریخ ها را مقایسه کنیم.
<?php $past = date_create("18 May 2021"); $now = date_create("now"); $dist_past = date_create("2002-09-21 18:15:00"); $dist_future = date_create("12-09-2036"); if($past < $now) { echo 'The first date is in the past.'; } // Output: The first date is in the past. if($past > $dist_past) { echo 'The third date is in the distant past.'; } // Output: The third date is in the distant past. if($dist_future > $now) { echo 'The fourth date is in the future.'; } // Output: The fourth date is in the future. ?>
تفاوت تاریخ در PHP (روش رویه)
درست مانند متد diff () کلاس DateTime، یک تابع date_create () متناظر وجود دارد که می توانید از آن برای محاسبه تفاوت بین دو تاریخ استفاده کنید. دو پارامتر را می پذیرد و تاریخ ارائه شده در پارامتر اول از تاریخ در پارامتر دوم کم می شود.
در اینجا مثالی برای محاسبه تعداد روزهای کریسمس گذشته و تعداد روزهای کریسمس بعدی آورده شده است.
<?php $last = date_create("25 Dec 2020"); $now = date_create("now"); $next = date_create("25 Dec 2021"); $days_last = date_diff($last, $now); $days_next = date_diff($now, $next); echo date_interval_format($days_last, '%a days').' since last Christmas.'; // Output: 170 days since last Christmas. echo date_interval_format($days_next, '%a days').' to next Christmas.'; // Output: 194 days to next Christmas. ?>
ما می خواستیم تعداد روزهای برگشتی را در هر دو حالت مثبت نگه داریم، بنابراین زمانی که بعدا می آید به عنوان پارامتر دوم تصویب می شود.
نتیجه گیری
PHP با روش ها و توابع مفید برای مقایسه دو تاریخ بسته به سبک کدگذاری شما ارائه می شود. با استفاده از متد diff () و تابع date_diff () در PHP می توانید اطلاعات بیشتری مانند تفاوت زمان دقیق بین دو تاریخ را دریافت کنید. ما سعی کرده ام مبانی مقایسه تاریخ در PHP را در این آموزش بیان کنیم. برای یادگیری نحوه قالب بندی تفاوت تاریخ در روش های پیشرفته تر، باید مستندات را مطالعه کنید.
دیدگاه ها