Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP从数据库中提取数据并将日期转换为iso8610 JavaScript日期_Php_Javascript_Sql_Iso8601 - Fatal编程技术网

PHP从数据库中提取数据并将日期转换为iso8610 JavaScript日期

PHP从数据库中提取数据并将日期转换为iso8610 JavaScript日期,php,javascript,sql,iso8601,Php,Javascript,Sql,Iso8601,我有php代码,可以从数据库中提取所需的信息。php日期代码的格式为“格式(“Y-m-dh:i:s”)”。我试图从数据库中获取这些日期,并使用JavaScript将它们添加到日历中。我在那里循环我想添加到日历中的事件。我不得不用不同的方法找到解决方案,但都不管用 <script type='text/javascript'> <?php for($x = 0; $x < count($events); $x++) { ?> var dat

我有php代码,可以从数据库中提取所需的信息。php日期代码的格式为“格式(“Y-m-dh:i:s”)”。我试图从数据库中获取这些日期,并使用JavaScript将它们添加到日历中。我在那里循环我想添加到日历中的事件。我不得不用不同的方法找到解决方案,但都不管用

<script type='text/javascript'>
    <?php for($x = 0; $x < count($events); $x++) { ?>
          var dateToConvert = new Date('<?php echo date(DATE_ISO8601, strtotime($events[$x]["startDate"])); ?>');
          var startDate = dateToConvert.toISOString();
          var endDate = '<?php echo date(DATE_ISO8601, strtotime($events[$x]["endDate"])); ?>';
          var events = [
             {
               title: '<?php echo $events[$x]["name"]; ?>',
               start: new Date(startDate),
               end: endDate
             }
          ];
    <?php } ?>
</script>

var dateToConvert=新日期(“”);
var startDate=dateToConvert.toISOString();
var endDate=“”;
var事件=[
{
标题:“”,
开始:新日期(开始日期),
完:完日期
}
];
我假设我遗漏了一些小的东西,但我想不出来。我使用了Chrome调试器,这是我的输入。(2013-03-18T01:00:00-0600)它的结尾似乎不像应该的那样有Z

数据库中的值为(2013-03-18 01:00:00)


我遗漏了什么?

您不应该以任何字符串格式传递日期。相反,将它们作为数字传递

var dateToConvert = new Date();
dateToConvert.setTime(<?php echo strtotime($events[$x]['startDate']); ?>000);
var dateToConvert=new Date();
日期转换设置时间(000);

这将更加可靠地工作。请注意,之所以有三个零,是因为JS以毫秒为单位处理时间,而PHP以秒为单位处理时间。

您的ISO时间格式正确。日期时间末尾的“Z”表示“祖鲁时间”,即UCT时区

因此,只有在没有指定其他时区的情况下,才会指定“Z”

在您的情况下,您引用的日期确实包含一个时区(
-6000
),因此我不希望看到“Z”

有关更多信息,请参见Wikipedia页面:

对于在PHP和Javascript之间移动日期/时间值,我认为最简单的方法就是使用unix时间戳。它是一个简单的整数值,因此不需要考虑格式,而且两种语言都能很好地理解它。唯一需要注意的是,在Javascript中,它的单位是微秒,而PHP的单位是秒,因此需要乘以或除以1000。但这很简单