2012-06-22 132 views
1

我使用JS DataTableDate Column必须是可排序的。但它不能排序为JS假定日期作为字符串导入。 (它不按实际的时间顺序排序,只是以字符串顺序)PHP日期变为Javascript日期变成时区差异?

然后,当我GOOGLE了,我开始意识到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
是否有任何其他适当的方式请:(

回答

2

您可以通过一个完整的日期字符串到JS日期对象构造它,尝试通过$ phpDate中的ISO日期格式之一到Date构造函数,而不是分裂它,你正在做的方式

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

Woah'JS Date'可以直接接受'PHP Date'吗?我以前不知道它。是的,它以这种方式工作,因为我的方式错了。谢谢!! ;) –

+0

它的工作原理,除了'重新格式化'日期的外观,我发现以下JS Date Formatter。再次感谢! :D .. http://blog.stevenlevithan.com/archives/date-time-format –