jQuery tablesorter 月份名称区域设置

发布于 2024-07-30 13:03:53 字数 883 浏览 7 评论 0原文

使用 jQuery tablesorter 插件 。 我想知道如何让它与完整格式的日期一起使用:

“2009年1月21日 16:00”

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

“2009年21月21日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>

Using the jQuery tablesorter plugin . I wonder how could I make it work with dates in the full format:

"Jan 21, 2009 16:00"

Problem is that when that date (a string) has been localized with user current locale

"gen 21, 2009 16:00"

Do I have to write a custom sorter for each locale?

Thanks.

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ぺ禁宫浮华殁 2024-08-06 13:03:53

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

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

如果它返回“NaN”(就像在我的 en-US firefox 上一样),那么您将需要一个自定义解析器,如果它返回 1232514000000 那么您不需要。 如果某列与此正则表达式匹配,则

Tablesorter 会将其检测为“美国长日期”:

/^[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)))$/

又名:

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

Well, the Tablesorter plugin will detect that "gen 21, 2009' is a date column. It will then pass it to the javascript Date constructor to parse it; that might be the step that fails. (I don't know if the constructor accepts localized strings; you can test that by running this:

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

If it returns "NaN" (as it does on my en-US firefox), then you'll need a custom parser. If it returns 1232514000000 then you don't need to do anything.

Tablesorter will detect a column as "US long date" if it matches this regular expression:

/^[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 alphabetic characters (month)
  • an optional period
  • a space
  • 1 - 2 digits (day)
  • comma, then space
  • 4-digit year, or apostrophe followed by 2-digit year
  • optional 24 hour time, or 12-hour time followed by uppercase AM or PM.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文