ultimatepos/Modules/Communication/Resources/views/layouts/date_helpers.blade.php

129 lines
4.5 KiB
PHP

<script>
(function () {
function toPersianDigits(value) {
if (typeof persian_number === 'function') {
return persian_number(String(value));
}
return value;
}
function dateTimeFormat() {
var dateFmt = (typeof moment_date_format !== 'undefined') ? moment_date_format : 'YYYY/MM/DD';
var timeFmt = (typeof moment_time_format !== 'undefined') ? moment_time_format : 'HH:mm';
return dateFmt + ' ' + timeFmt;
}
function persianPickerFormat() {
var dateFmt = (typeof datepicker_date_format !== 'undefined') ? datepicker_date_format : 'YYYY/MM/DD';
var use12h = (typeof moment_time_format !== 'undefined' && moment_time_format.indexOf('A') !== -1);
return dateFmt + (use12h ? ' hh:mm a' : ' HH:mm');
}
function timeFormatOnly() {
return (typeof moment_time_format !== 'undefined') ? moment_time_format : 'HH:mm';
}
function usePersian() {
return typeof is_persian_lang !== 'undefined' && is_persian_lang;
}
function use12HourTime() {
return (typeof moment_time_format !== 'undefined' && moment_time_format.indexOf('A') !== -1);
}
window.CommDate = {
formatDateTime: function (iso) {
if (!iso || typeof moment === 'undefined') {
return '-';
}
var m = moment(iso);
if (!m.isValid()) {
return '-';
}
var formatted = m.format(dateTimeFormat());
return usePersian() ? toPersianDigits(formatted) : formatted;
},
formatTime: function (iso) {
if (!iso || typeof moment === 'undefined') {
return '';
}
var m = moment(iso);
if (!m.isValid()) {
return '';
}
var fmt = m.isSame(moment(), 'day') ? timeFormatOnly() : dateTimeFormat();
var formatted = m.format(fmt);
return usePersian() ? toPersianDigits(formatted) : formatted;
},
clearDateTimePicker: function (selector) {
var $input = $(selector);
if (!$input.length) {
return;
}
$input.val('');
if ($input.data('DateTimePicker')) {
$input.data('DateTimePicker').clear();
}
},
initDateTimePicker: function (selector) {
if (typeof $ === 'undefined') {
return;
}
$(selector).each(function () {
var $input = $(this);
if ($input.data('pp-comm-ready') || $input.data('DateTimePicker')) {
return;
}
if (typeof __init_datetime_field === 'function') {
__init_datetime_field($input, {
format: dateTimeFormat(),
ignoreReadonly: true,
timePicker: {
meridian: {
enabled: use12HourTime(),
},
second: {
enabled: false,
},
},
});
$input.data('pp-comm-ready', true);
return;
}
if (usePersian() && typeof $.fn.persianDatepicker !== 'undefined') {
$input.persianDatepicker({
calendarType: 'persian',
format: persianPickerFormat(),
autoClose: true,
initialValue: false,
observer: true,
timePicker: {
enabled: true,
meridian: {
enabled: use12HourTime(),
},
second: {
enabled: false,
},
},
});
$input.data('pp-comm-ready', true);
return;
}
if (typeof $.fn.datetimepicker !== 'undefined') {
$input.datetimepicker({
format: dateTimeFormat(),
ignoreReadonly: true,
});
$input.data('pp-comm-ready', true);
}
});
},
};
})();
</script>