1

我正在使用 JSDataTable并且Date Column必须是可排序的。但它无法排序,因为JS 假定将 Dates 导入为 Strings。(它不按实际时间顺序排序。只是按字符串顺序)

然后当我用谷歌搜索时,我开始意识到 JS 只能对 JS 日期进行排序。意味着,我需要将 PHP 日期转换为 JS 日期。

但我还不能正确地得到它。我所做的是:

<script>
    var jsDate = new Date(
                        <?php echo $phpDate_y; ?>,
                        <?php echo $phpDate_m; ?>,
                        <?php echo $phpDate_d; ?>
                    ); // $phpDate will be "2012-04-30";
</script>

但是在渲染时, jsDate 被转换为:

Thu Oct 03 1935 00:00:00 GMT+0730 (MALST)

完全不同!
而且,我的时区位置是Singapore.
有没有其他合适的方法请:(

4

2 回答 2

2

您可以将完整的日期字符串传递给 JS Date 对象以构造它,因此请尝试将其中一种 ISO 日期格式的 $phpDate 传递给 Date 构造函数,而不是按照您的方式拆分它。

// $phpDate = '2012-08-17 12:29:06'
var jsDate = new Date("<?php echo $phpDate; ?>");
于 2012-06-22T04:50:36.463 回答
1

尝试使用date_default_timezone_set('America/Los_Angeles');

PHP 脚本的第一行。

php.net/manual/en/function.date-default-timezone-set.php

于 2012-06-22T04:50:43.063 回答