Sina
2 سال پیش توسط Sina مطرح شد
4 پاسخ

مثال عملی از تبدیل تاریخ میلادی به شمسی با استفاده از Jquery

درود
وقت همگی بخیر
من میخوام با استفاده از Jquery و کتابخانه jallali بیام و در کنار تمام تاریخ های میلادی که در قسمت Front سایتم دارم تاریخ شمسی رو هم داشته باشم و تبدیل کنم برای این کار دارم از کد زیر استفاده میکنم و کار هم میکنه :

var shamsitxt = " | ";
 $(".topbar-today-date").append(shamsitxt,moment().locale('fa').format('DD MMMM, YYYY'));
var input = $(".date").text();
 $(".date").append(shamsitxt,moment(input,'DD MMMM, YYYY').locale('fa').format('DD MMMM, YYYY'));

ولی با چالش روبرو شدم:

  1. کلاس date من تو یک صفحه جاهای مختلفی تکرار شده و وقتی من محتوای اون رو داخل یک متغیر میریزم هرچی تاریخ با کلاس date وجود داره رو میریزه تو اون متغیر و طبیعتا تاریخ تبدیل نمیشه و ارور میده !
  2. بعضی از قسمت های سایت با استفاده از ajax لود میشه و تبدیل تاریخ رو اون قسمت ها کار نمیکنه چون کد من فقط زمانی که صفحه لود میشه اجرا میشه
    واسه حل این مشکلات چه کاری میتونم انجام بدم ؟

اصلا این روش درسته ؟ من فقط میخوام در کنار تاریخ های متعدد میلادی که تو سایتم دارم تاریخ شمسی رو هم نمایش بدم و قرار هم نیست اصلا این تاریخ ها تو دیتابیس و جایی ذخیره بشه فقط ن
ممنون میشم اگه راه کار بهتری هم سراغ دارید راهنمایی کنید

با تشکر


ثبت پرسش جدید
سینا شاه‌اویسی
تخصص : برنامه نویس فرانت اند
@sinashahoveisi 2 سال پیش مطرح شد
0

سلام

  1. میتونی یه کلاس خاص تعریف کنی که بقیشون نداشته باشند و یا اینکه با id اون المنت رو بگیری
  2. وقتی لود شد توی onSuccess درخواست ajax میتونی تشخیص بدی که لود شده و اون موقع المنت موردنظرتو بگیری و تغییر بدی

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


Sina
@sinayas1 2 سال پیش آپدیت شد
0

@sinashahoveisi
ممنون از راهنماییتون
اینکه بخوام به هر تاریخ یه آی دی یا کلاس خاص بدم خیلی منطقی نیست شما در نظر بگیرید تو صفحه بلاگ من 100 تا پست دارم و همه هم تاریخ انتشار دارند با ساختار زیر :

<span class="date">6 July, 2022</span>

من نمیتونم به همه اینها بیام به کلاس خاص یا آی دی خاص بدم! اینجوری میشه 100 تا کلاس و داینامیک هم نیست این پست ها کم و زیاد میشه

کلا درستش اینه که تاریخ میلادی توی دیتابیس قرار بگیره و توی فرانت به شمسی تبدیل بشه

الان هم دقیقا همینه همه تاریخ ها میلادی داره ذخیره میشه و میلادی هم نمایش داده میشه من فقط میخوام در front کنار تاریخ میلادی شمسی هم نمایش داده بشه همین


سینا شاه‌اویسی
تخصص : برنامه نویس فرانت اند
@sinashahoveisi 2 سال پیش مطرح شد
0

شما باید بیای همه المنت هایی که کلاس date‌ دارند رو بگیری بعد یه حلقه forEach بزنی و دونه به دونه هر کدوم رو پیمایش کنی همونجا تاریخ هرکدوم رو بگیری و تبدیل به شمسی کنی و جایگزین کنی.
اگه بک اند هم دست خودته که از اونور وقتی صفحه رو رندر میکنی هم میتونی راحت اینکار رو انجام بدی


Sina
@sinayas1 2 سال پیش مطرح شد
0

@sinashahoveisi
میشه خواهش کنم کد نمونه رو قرار بدید ؟ چون من تلاش کردم ولی نتیجه نگرفتم متاسفانه


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

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