jQuery tablesorter月份名称语言环境

时间:2009-08-06 18:07:08

标签: jquery locale tablesorter

使用jQuery tablesorter plugin。我想知道如何才能使用完整格式的日期:

  

“2009年1月21日16:00”

问题是当该日期(字符串)已使用用户当前区域设置进行本地化时

  

“gen 21,2009 16:00”

我是否必须为每个区域设置编写自定义排序器?

感谢。

<table id="orders" class="sortable">
    <thead>
        <tr>
            <th>Da</th>
            <th>Al</th>
            <th class="right">Camere</th>
            <th class="right">Spesa dell'ordine</th>
        </tr>
    </thead>
    <tr>
        <td>gen 21, 2009 22:00</td>
        <td>gen 22, 2009 22:00</td>
        <td class="right">1</td>
        <td class="right">30.00€</td>
    </tr>

1 个答案:

答案 0 :(得分:1)

好吧,Tablesorter插件将检测到“gen 21,2009”是一个日期列。然后它会将它传递给javascript Date构造函数来解析它;这可能是失败的步骤。(我不知道如果构造函数接受本地化字符串;您可以通过运行此命令来测试:

new Date("gen 21, 2009 16:00").getTime();

如果它返回“NaN”(就像在我的en-US firefox上那样),那么你需要一个自定义解析器。如果它返回1232514000000,那么您不需要做任何事情。

如果匹配此正则表达式,Tablesorter会将列检测为“US long date”:

/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/

a.k.a:

  • 3 - 10个字母字符(月)
  • 可选期间
  • 空格
  • 1 - 2位数(日)
  • 逗号,然后是空格
  • 4位数年份,或撇号后跟2位数年份
  • 可选24小时制,或12小时制,然后是大写AM或PM。