php日期(格式化)函数输出奇怪/不正确
我在尝试将Unix时间(取自SVN Info命令生成的XML文件)转换为格式化的日期/时间时遇到问题php日期(格式化)函数输出奇怪/不正确,php,datetime,Php,Datetime,我在尝试将Unix时间(取自SVN Info命令生成的XML文件)转换为格式化的日期/时间时遇到问题 $svnInfoTime是正确的,生成的$unixTime反映了这一点,尽管$formattedDate似乎有点不正确 我在很多(但不是所有)案例中都看到过这种情况。例如: <?php $svnInfoTime = "2013-03-06T15:42:00.894378Z"; $unixTime = strtotime($svnInfoTime); $format
$svnInfoTime
是正确的,生成的$unixTime
反映了这一点,尽管$formattedDate
似乎有点不正确
我在很多(但不是所有)案例中都看到过这种情况。例如:
<?php
$svnInfoTime = "2013-03-06T15:42:00.894378Z";
$unixTime = strtotime($svnInfoTime);
$formattedDate = date('d F, Y, h:i A', $unixTime);
echo "SVN info time : " . $svnInfoTime . "<br>";
echo "unix time : " . $unixTime . "<br>";
echo "formatted date: " . $formattedDate . "<br>";
>
当Unix时间为下午3:42时,为什么格式化日期显示为下午4:42
有人能告诉我哪里出错了吗?在输出/格式化日期时,PHP函数会考虑您的时区设置
检查您所在的时区,或将自定义时区设置传递到date
函数,以获得下午3:42的输出
顺便说一句,它在飞机上很好用
编辑 在调用
date()
之前传递一个不同的值时,将导致输出9:12 PM
$svnInfoTime = "2013-03-06T15:42:00.894378Z";
$unixTime = strtotime($svnInfoTime);
date_default_timezone_set('Asia/Kolkata');
$formattedDate = date('d F, Y, h:i A', $unixTime);
echo "SVN info time : " . $svnInfoTime . "<br>";
echo "unix time : " . $unixTime . "<br>";
echo "formatted date: " . $formattedDate . "<br>";
$svnInfoTime=“2013-03-06T15:42:00.894378Z”;
$unixTime=strotime($svnInfoTime);
日期默认时区设置(“亚洲/加尔各答”);
$formattedDate=日期('df,Y,h:ia',$unixTime);
回显“SVN信息时间:”$斯文尼福泰姆。“
”;
回显“unix时间:”$unixTime。“
”;
echo“格式化日期:”$格式化日期。“
”;
给出:
SVN信息时间:2013-03-06T15:42:00.894378Zunix时间:1362584520
格式化日期:2013年3月6日晚上9:12
学习使用时区为Awa的DateTime对象,其他解决方法是设置默认时区:
date\u default\u timezone\u set('UTC')代码>。问题在于您忘了准确定义“时间”。谢谢,使用date\u default\u timezone\u set('GMT')解决了这个问题在调用日期
函数之前执行code>。
$svnInfoTime = "2013-03-06T15:42:00.894378Z";
$unixTime = strtotime($svnInfoTime);
date_default_timezone_set('Asia/Kolkata');
$formattedDate = date('d F, Y, h:i A', $unixTime);
echo "SVN info time : " . $svnInfoTime . "<br>";
echo "unix time : " . $unixTime . "<br>";
echo "formatted date: " . $formattedDate . "<br>";