首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP添加时间,不适用于美国日期格式

PHP添加时间,不适用于美国日期格式
EN

Stack Overflow用户
提问于 2012-06-17 23:58:20
回答 1查看 361关注 0票数 1

我是英国人,但为一位美国客户工作,他想要的是时间显示和补偿。

为什么这是可行的:

代码语言:javascript
复制
$date = date('d-m-Y H:i');
$timeToAdd = strtotime(date("d-m-Y H:i", strtotime($date)) . " + 8 hour");
$newDate = date('d-m-Y H:i', $timeToAdd);
echo 'Current Time: ' . $date . '<br/>Time + 8 Hours: ' . $newDate;

这会产生:

当前时间: 17-06-2012 08:53时间+8小时: 17-06-2012 16:53

这是不会的(切换月份和日期):

代码语言:javascript
复制
$date = date('m-d-Y H:i');
$timeToAdd = strtotime(date("m-d-Y H:i", strtotime($date)) . " + 8 hour");
$newDate = date('m-d-Y H:i', $timeToAdd);
echo 'Current Time: ' . $date . '<br/>Time + 8 Hours: ' . $newDate;

这会产生:

当前时间: 06-17-2012 08:56时间+8小时: 12-31-1969 16:00

1969年

?!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-18 00:04:31

请参阅the documentation for strtotime()中的注释部分

备注:

通过查看各个组件之间的分隔符,可以消除m/d/yd-m-y格式中的日期的歧义:如果分隔符是斜杠(/),则假定为美国m/d/y;而如果分隔符是破折号(-)或点(.),则假定为欧洲d-m-y格式。

为了避免潜在的歧义,最好尽可能使用ISO8601 (YYYY-MM-DD)日期或DateTime::createFromFormat()

您使用-作为分隔符,因此假定为d-m-y

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11072730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档