【问题标题】:PHP Date to Javascript Date becomes Time Difference?PHP日期到Javascript日期变成时差?
【发布时间】:2012-06-22 04:36:06
【问题描述】:

我正在使用 JS DataTable 并且 Date Column 必须是可排序的。但它不能排序为 JS 假定作为字符串导入的日期。 (它不按实际时间顺序排序。只是按字符串顺序)

然后当我用谷歌搜索时,我开始意识到 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
请问有没有其他合适的方法:(

【问题讨论】:

    标签: php javascript datetime datatable timezone


    【解决方案1】:

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

    // $phpDate = '2012-08-17 12:29:06'
    var jsDate = new Date("<?php echo $phpDate; ?>");
    

    【讨论】:

    • JS Date 可以直接接受PHP Date 吗?我以前不知道。是的,它以这种方式工作,因为我的方式是错误的。谢谢!! ;)
    • 它可以工作,除了Re-format 出现的日期,我发现遵循 JS Date Formatter。再次感谢! :D ..blog.stevenlevithan.com/archives/date-time-format
    【解决方案2】:

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

    PHP 脚本的第一行。

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

    【讨论】:

      猜你喜欢
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多