در اولین مرحله باید در مستر پیج فایل js خود را صدا بزنیم
<script> $(document).ready(function () {
changeDate();
});
</script>
در فایل js نیز کد های زیر را وارد کنید تا در view ها تاریخ شمسی شود
function changeDate() {
$('.ms-noWrap').each(function () {
if ($(this).text().match('\\d{1,2}\\/\\d{1,2}\\/\\d{4}')) {
$(this).text(convert($(this).text()));
}
});
function convert(txt) {
ENtxt = txt.match('\\d{1,2}\\/\\d{1,2}\\/\\d{4}')[0];
splitter = ENtxt.split('/');
Year = new Number(splitter[2]);
Month = new Number(splitter[0]);
Day = new Number(splitter[1]);
shamsiDate = SHDate(Year, Month, Day);
return txt.replace(ENtxt, shamsiDate)
}
توابع زیر برای تبدیل تاریخ میلادی به شمسی مورد استفاده قرار می گیرند شما می توانید این توابع را در صورت تمایل با کد های دیگر جایگزین کنید
function plus(year) { return year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) ? 1 : 0; } function SHyear(year, month, day) { if (month <= 3 && day < 21 - plus(year)) return year - 622; else return year - 621; }
function SHmonth(year, month, day) {
condition = new Array(21, 20, 21, 21, 22, 22, 23, 23, 23, 23, 22, 22);
month_first = new Array(10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9);
month_second = new Array(11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
if (day < condition[month - 1] - plus(year))
return month_first[month - 1];
else return month_second[month - 1];
}
function SHday(year, month, day) { condition = new Array(21, 20, 21, 21, 22, 22, 23, 23, 23, 23, 22, 22); plus_first = new Array(10, 11, 9, 11, 10, 10, 9, 9, 9, 8, 9, 9); plus_second = new Array(20, 19, 20, 20, 21, 21, 22, 22, 22, 22, 21, 21); if (day < condition[month - 1] - plus(year)) return day + plus_first[month - 1] + plus(year); else return day - plus_second[month - 1] + plus(year); }
function SHDate(year, month, day) { return SHyear(year, month, day) + "/" + SHmonth(year, month, day) + "/" + SHday(year, month, day); }