我正在尝试在Datatable列中显示格式正确的日期。我正在使用MomentJS来正确检测和格式化单元格,因为它来自数据库中的yyyyMMdd
(即20051201
)字符串:
columns: [
{
data: "fechaPago",
"render": function(data){
return (moment(data).isValid()) ? moment(data).format("DD/MM/YYYY") : "-";
}
},
]
完全符合预期:
现在,我正在努力实现更灵活的方法,并让当前的语言环境决定格式。我们的网络应用程序中有3种可用语言,我希望数据表检测当前语言并更改格式(从dd/MM/yyyy
到MM/dd/yyyy
,如果是英文的话)。
我曾尝试使用'LLLL'
作为格式,但它会使用字母返回整个日期,而我无法弄清楚如何修改它。
答案 0 :(得分:1)
您可以使用时刻locale(String)
功能设置当前功能区域设置,或moment.locale(String)
设置全局时刻区域设置。
要在format()
中使用L
令牌,请获取本地化的日,月和年。
您的代码如下:
columns: [
{
data: "fechaPago",
"render": function(data){
var locale = // get current locale code
return (moment(data).isValid()) ? moment(data).locale(locale).format("L") : "-";
}
},
]
请记住使用moment-with-locales.js
(或导入所需的区域设置)。