【发布时间】:2017-02-08 06:20:46
【问题描述】:
SlickGrid 使用默认的美国日期格式 mm/dd/yyyy 启动日历。我以澳大利亚格式 dd/mm/yyyy 将日期存储在我的数据库中。如何将日历的格式更改为 dd/mm/yyyy?
【问题讨论】:
标签: slickgrid
SlickGrid 使用默认的美国日期格式 mm/dd/yyyy 启动日历。我以澳大利亚格式 dd/mm/yyyy 将日期存储在我的数据库中。如何将日历的格式更改为 dd/mm/yyyy?
【问题讨论】:
标签: slickgrid
您可以通过编写新的自定义编辑器来使用您选择的 DatePicker。默认日期编辑器使用 jQueryUI DatePicker。 就个人而言(我也在澳大利亚),我使用具有以下设置的默认设置:
function DateFormatter(rowIndex, cell, value, columnDef, grid, dataProvider) {
if (value == null || value === "") { return "-"; }
return moment.utc(value).format('ddd, D MMM YYYY');
}
... 使用moment.js 格式化日期,并在 DateEditor ...
$input.datepicker({
showOn: "button",
changeMonth: true,
changeYear: true,
dateFormat: 'd/m/yy',
buttonImageOnly: true,
buttonImage: "../images/calendar.gif"
});
你也可以localise
【讨论】:
您可以为行编写格式化程序(我也使用 moment.js):
function dateTimeFormatter (row, cell, value, columnDef, dataContext) {
var dateTime = Date.parse(value);
var result = moment(dateTime);
return result.format('DD.MM.YYYY hh:mm:ss');
}
【讨论】:
moment(value, inputFormat).format(outputFormat);
首先,将代码添加到本地库中的 slick.formatters.js 文件中: 在两个地方添加自定义日期格式化程序:
$.extend(true, window, {
"Slick": {
"Formatters": {
"PercentComplete": PercentCompleteFormatter,
"PercentCompleteBar": PercentCompleteBarFormatter,
"YesNo": YesNoFormatter,
"Checkmark": CheckmarkFormatter,
"Checkbox": CheckboxFormatter,
"Date": Dateformatter //<< this one
}
}
});
在文件末尾:
function Dateformatter(row, cell, value, columndef, datacontext) {
if (value === null) {
return "";
} else {
var d = new Date(value);
var m = d.getMonth() + 1;
return (d.getDate() + "/" + m + "/" + d.getFullYear());
}
}
})(jQuery); //<< this line is already present
现在您可以在列定义中添加日期格式化程序:
{ id:“lastLoginDate”,名称:“LastLoginDate”,字段:“lastLoginDate”,格式化程序:Slick.Formatters.Date },
【讨论】: