با استفاده از PHP و کلاس DateTime و تابع date_interval_format، برنامهای بنویسید که دو تاریخ ورودی به فرمت YYYY-MM-DD گرفته و تفاوت آنها را به صورت "X سال، Y ماه، Z روز" نمایش دهد.
3.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:33 0.0
در این مسئله از کلاس DateTime برای ساختن اشیاء تاریخ (مثلاً با DateTime::createFromFormat) و از متد diff برای دریافت یک شیء DateInterval استفاده کنید؛ سپس با date_interval_format و قالبهایی مانند "%y سال، %m ماه، %d روز" فاصله را فرمت کنید. نکات مفید: ورودیها را اعتبارسنجی کنید، در صورت نیاز تاریخها را جابجا کنید تا همیشه فاصله مثبت باشد، و برای نمایش بهتر مقادیر صفر را نادیده بگیرید یا قالب دلخواه خود را بسازید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته مهم اینکه برای اعتبارسنجی ورودیهای تاریخ از DateTime::createFromFormat با بررسی getLastErrors استفاده کنید تا خطاها مشخص شوند. اگر میخواهید فاصله همیشه مثبت باشد، تاریخها را جابهجا کنید یا نتیجه را با بررسی invert در DateInterval مدیریت کنید. وقتی از date_interval_format با قالب '%y سال، %m ماه، %d روز' استفاده میشود، مقادیر صفر هم نشان داده میشوند؛ برای نمایش فشردهتر یا عدم نمایش صفرها میتوانید قالب را یا با منطق شرطی اصلاح کنید یا خروجی را پیشپردازش کنید. توجه به اینکه قالبهای محلیسازی را به شکل مناسب (مثلاً فارسی) تنظیم کنید تا صحت نمایش انجام شود.
گزارش