حسین شیری نژاد
1 سال پیش توسط حسین شیری نژاد مطرح شد
1 پاسخ

تاریخ ها در php

سلام دوستان خوبم
من یه سایت چند زبانه درست کردم
یک مشکلی در رابطه با تاریخ ها دارم
اولندش اینکه تمام تاریخ ها به میلادی ذخیره میشن
حالا هر زمان که یک زبان از سایت انتخاب میکنم کلا زبان سایت عوض میشه و محتوای همون زبان در سایت نشون داده میشه
الان مشکلم با نمایش تاریخ ها بر حسب زبان انتخاب شده است
تصور کنید زبان انگلیسی انتخاب بشه در این صورت تاریخ ها به صورت میلادی باید نشون داده بشن
اگر زبان فارسی انتخاب شد تاریخ ها به فارسی نشون داده بشن و برای همه زبانها به همین روش کار بکنه.
اگه برای هر تبدیل تاریخی کتابخونه ای باید نصب کرد ، روش منطقی ای نباید باشه
مرسی از توجه شما


ثبت پرسش جدید
مهدی نظری
تخصص : توسعه دهنده Front End
@mahdi.nazari 1 سال پیش مطرح شد
0

سلام 🖐
امیدوارم حالت خوب و عالی باشی🙏

برای نمایش تاریخ‌ها در وبسایت چند زبانه به تنهایی و بدون نیاز به نصب کتابخونه های خارجی، می‌توانی از ویژگی‌های محلی‌سازی (Localization) توی PHP استفاده کنی این که مشخصه

توی سایت‌ ، تنظیمات زبانی را برای کاربرها ایجاد میکنیم خب . معمولاً این کار با استفاده از session یا cookie انجام میشه . وقتی که کاربر زبون رو تغییر می‌ده ، زبان جدید را در session یا cookie ذخیره میکنیم تا اینجا درست ؟

تبدیل تاریخ‌هامون : در فایل‌های مناسب (مثلاً قسمت‌هایی که تاریخ‌ها نمایش داده می‌شوند)، باید تاریخ‌ها را با توجه به زبان انتخابی کاربر تغییر بدیم و اینجا مشخصه عمدتا

برای تغییر تاریخ‌ها به تاریخ‌های میلادی و فارسی مون بر اساس زبان، هم می‌توانی از توابع داخلی PHP بهره بگیریم

برای تبدیل تاریخ‌ها به تاریخ‌های میلادی: از توابع date_create و date_format استفاده میکنیم
برای تبدیل تاریخ‌ها به تاریخ‌های فارسی هم از کتابخانه‌های موجود برای تبدیل تاریخ‌های میلادی به شمسی مانند jDateTime استفاده میکنیم

مثال

// تاریخ دریافتی از دیتابیس (مثلاً با مقدار "2023-08-16")
$dbDate = "2023-08-16";

// تبدیل تاریخ به میلادی
$date = date_create($dbDate);
$formattedDate = date_format($date, 'Y-m-d'); // 2023-08-16

// تبدیل تاریخ به تاریخ فارسی
require 'jdatetime.class.php';
$jDate = new jDateTime(true, true, 'Asia/Tehran');
$formattedJalaliDate = $jDate->date("Y-m-d", strtotime($dbDate)); // 1402-05-25

امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام