use*_*602 4 php datetime date strtotime
我在PHP中有Web服务,它获取dateTime对象(来自asp).我想以自定义格式解析这个日期.最初的日期格式为"2010-07-05T00:00:00 + 02:00".我在尝试这个时:
$oDate = strtotime($date_from_webservice);
$sDate = date("d.m.Y",$oDate);
echo $sDate;
Run Code Online (Sandbox Code Playgroud)
我的日期是"07.04.2010",也就是提前一天.为什么?
谢谢
看一下,原始日期($ date_from_webservice)在时区GMT + 2,时间是午夜.
我猜测PHP配置的时区是不同的(问题UTC),所以日期"出现"是前一天.但是,转换完全正确.
要解决此问题,您有以下几种选择:
询问/告诉原始服务器将日期时间恢复为UTC(这应该是它应该做的事情),确保PHP也使用UTC.
使用date_default_timezone_set或在php.ini 中将 PHP配置为与源服务器相同的时区.请注意,由于夏令时,您不能只添加/减去小时数.
如果您确定日期时间格式是一致的,请使用substr.例如:
$ sDate = substr($ oDate,8,2).'.'.substr($ oDate,5,2).'.'.substr($ oDate,0,4);
选项1是最好的.如果原始服务器的时区已更改,则选项2存在风险.选项3假定日期时间格式永远不会改变.
| 归档时间: |
|
| 查看次数: |
2741 次 |
| 最近记录: |