1

今天我有一个用PHP编写的项目。当我尝试在表格数据集中显示日期时出现错误。这是产生错误的语句:

$data = new DateTime($registro["previsao de entrega"];

错误信息是这样的:

致命错误:未捕获的异常 'Exception' 带有消息 'DateTime::__construct() 无法在位置 0 (2) 解析时间字符串 (2 dez 2011 16:00):C:\www\fluxo_producao\Telas\ 中的意外字符TelaFluxoProducao.php:941 堆栈跟踪:#0 C:\www\fluxo_producao\Telas\TelaFluxoProducao.php(941): DateTime->__construct('2 dez 2011 16:0...') #1 {main} 投入C:\www\fluxo_producao\Telas\TelaFluxoProducao.php 在第 941 行

我自己发现的是,如果我手动将参数更改为“2006 年 12 月 12 日”,则该功能有效。但是变量传递的日期是“12 Dez 2006”(巴西格式,顺便说一句,我是巴西人^_^),我也发现服务器中的默认时区是“America/Sao_Paulo”...我必须在函数或参数中进行哪些更改才能使其转换为指定的格式?

4

2 回答 2

1

它需要在末尾有一个右花括号吗?

$data = new DateTime($registro["previsao de entrega"]);

如果这只是一个错字,可能是 的值$registro["previsao de entrega"]不正确,它是什么?

您可以在此处查看允许的值格式:http ://www.php.net/manual/en/datetime.formats.date.php

它只接受英文月份值,例如,Dec将工作但Dez不会。

于 2012-04-05T14:24:33.883 回答
0

验证您是否已将服务器设置为正确的时间区域:

setlocale(LC_TIME, 'pt_BR');

这是strftime()所有与日期/时间相关的函数和 AFAIK所必需的,并且DateTime该类使用需要/尊重此设置的相同库。

于 2012-04-05T14:29:14.187 回答