Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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/7/arduino/2.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 Symfony2日期时间表单_Php_Symfony_Datetime - Fatal编程技术网

Php Symfony2日期时间表单

Php Symfony2日期时间表单,php,symfony,datetime,Php,Symfony,Datetime,表单中的datetime字段出现了一些奇怪的问题我刚刚将php版本更新为5.5.29 表单字段: $customerReportForm->add('dateTo', 'date', [ 'data' => new \DateTime(), 'required' => false, 'widget' => 'single_text', 'label' => 'До', 'attr' => array('class' =&

表单中的datetime字段出现了一些奇怪的问题我刚刚将php版本更新为5.5.29

表单字段:

$customerReportForm->add('dateTo', 'date', [
    'data' => new \DateTime(),
    'required' => false,
    'widget' => 'single_text',
    'label' => 'До',
    'attr' => array('class' => 'datepicker', "data-date-format" => "yy-mm-dd")
]);
在开发控制台中,我看到表单[dateTo]:2015-09-18 在转储表单数据(提交后)时,我会看到日期和我选择的前一天:

2015-09-17

[日期]=>对象(日期时间){[日期]=>字符串(26)“2015-09-17 23:00:00.000000”[时区类型]=>int(3)[“时区”]=>字符串(13)“欧洲/莫斯科”]

在控制台日期命令中显示正确的日期:

->%日期
Pn Rgs 18 13:00:29 MSK 2015

在我尝试添加的表单中:“format'=>“MM/dd/yyyy”,它没有帮助,发布数据:form[dateTo]:09/18/2015


UPD

感谢,将时区重新配置为UTC

'model_timezone' => 'UTC',
'view_timezone' => 'UTC',

在表单中修复了我的问题。

这听起来很像时区或区域设置问题

前者可以通过表单字段上的
model\u timezone
view\u timezone
进行检查,例如:

$customerReportForm->add('dateTo', 'date', [
    // ...
    'model_timezone' => 'UTC',
    'view_timezone' => 'UTC',
]);
尝试将时区设置为UTC,看看您是否仍然遇到同样的问题。接下来,尝试查看您的系统(不是PHP)时区,然后确保PHP.ini文件中的
date.timezone
设置与此匹配。如果这些都没有帮助,那么可能是区域设置

在内部,
date
字段使用
Locale
IntlDateFormatter
实例来确保日期和时间的格式和读取正确。PHP用于此。像这样的问题有几点可能会让人知道:

  • 您的system/php.ini/Symfony配置区域设置有着奇怪的不同
  • 如果您的PHP版本是针对古怪或有缺陷的ICU版本编译的
  • 存储在系统上的区域设置可能不是最新的,或者再次出现错误

  • 除此之外的一切都是猜测。我遇到了一个类似的问题,您描述了从UTC到欧洲/伦敦的时区切换,根据DST同步。我非常怀疑这是区域设置错误,但如果你确定你没有在任何情况下操纵日期,那么检查也无妨。

    尝试将日期分隔符更改为/并让我知道它是如何运行的为什么“model\u timezone”=>“UTC”,“view\u timezone”=>“UTC”,成功了!谢谢你,伙计!php.ini中的时区设置为\Moscrow