【问题标题】:Timezone issue while converting date generated from fullcalendar in PHP在 PHP 中转换从 fullcalendar 生成的日期时出现时区问题
【发布时间】:2015-01-31 13:42:57
【问题描述】:

在转换生成表单 jQuery fullcalendar 的日期时,时区在 Windows 中产生了一些问题。

这是我发布的值,为了识别错误,我将start 变量作为(IST) 中的字符串,最后是从 jQuery fullcalendar 那里获得的响应值如您所见,时区位于(India Standard Time)。请参考控制台图片

在php中使用strtotime()转换开始和结束变量后,我得到的是

这是我用来转换的代码:

        $dat = array(
                    'eve_start' => date('Y-m-d', strtotime($_POST['start'])),
                    'eve_end' => date('Y-m-d', strtotime($_POST['end'])),
                    'eve_allDay' => 0
                );

您会注意到eve_end 没有正确获取,因为(India Standard Time)

【问题讨论】:

  • 基本上这里的问题是,您发布的日期格式无效,因为日期时间不能有双时区规范。我认为fullcalendar.io 适用于 ISO8601 日期时间格式,因此发送错误格式可能是您的错。为什么不修复 POST 以发送正确的日期时间?向我们展示 JS 代码...
  • 控制台的第一张图片显示了 windows 和 linux 中的日期格式... post 元素格式没有错,这里的问题是时区在 windows 中以可扩展形式出现,并且在格式化时出错php中的日期
  • 所以你是说你的脚本帖子在不同系统中的格式不同?
  • 是的,在 windows 中是(印度标准时间),但在 linux 中是 (IST)
  • 你能告诉我们你的 javasript 的 ajax 请求部分吗?

标签: php jquery timezone fullcalendar strtotime


【解决方案1】:

试试这个,

$start = substr($_POST['start'], 0, strpos($_POST['start'], '('));
$end = substr($_POST['end'], 0, strpos($_POST['end'], '('));

$start_date = date('Y-m-d h:i:s', strtotime($start));
$end_date = date('Y-m-d h:i:s', strtotime($end));
$dat = array(
                'eve_start' => $start_date,
                'eve_end' => $end_date,
                'eve_allDay' => 0
            );

【讨论】:

    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 2021-12-14
    • 2021-12-14
    • 2014-09-21
    相关资源
    最近更新 更多