سلام و عرض ادب
من از کتابخانه antd-jalali برای انتخاب تاریخ شمسی استفاده میکنم
برای انتخاب تاریخ پیش فرض موقع لود فرم از کد
defaultValue={dayjs(obj.datefa, { jalali: true })}
استفاده میکنم.مشکل این حالت اینه که اگه بیام satate مورد نظر را مقدار دهی کنم ، توی دیت پیکر تغییر نمیکنه
این مشکل با تغییر به
value={dayjs(obj.datefa, { jalali: true })}
حل میشه.ولی مشکلی که پیش میاد ، هر تاریخی که انتخاب میکنم ، یک ماه ازش کم میکنه
لطفا راهنمائید بفرمائید
سلام جناب آقای اذری پور عزیز😊
مشکل شما احتمالاً به دلیل تنظیم نادرست تاریخ شمسی در antd-jalali
است. برای رفع آن، مراحل زیر را دنبال کنید:
استفاده از value
به جای defaultValue
:
برای کنترل مقدار DatePicker
، حتماً از value
استفاده کنید.
تنظیم صحیح dayjs
با پلاگین جلالی:
مطمئن شوید dayjs
با پلاگین جلالی و locale فارسی تنظیم شده است.
مثال کد:
import dayjs from 'dayjs';
import jalaliPlugin from 'dayjs/plugin/jalaliPlugin';
import 'dayjs/locale/fa';
dayjs.extend(jalaliPlugin);
dayjs.locale('fa');
const MyDatePicker = ({ obj }) => {
const [selectedDate, setSelectedDate] = React.useState(dayjs(obj.datefa, { jalali: true }));
const handleDateChange = (date) => {
setSelectedDate(date);
};
return (
<DatePicker
value={selectedDate}
onChange={handleDateChange}
jalali={true}
/>
);
};
بررسی فرمت تاریخ:
اگر obj.datefa
رشته است، مطمئن شوید فرمت آن با dayjs
سازگار است (مثلاً YYYY/MM/DD
).
با این تنظیمات، مشکل کاهش یک ماه از تاریخ باید حل شود. اگر سوال دیگری داشتید، خوشحال میشم کمک کنم! 😊
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟