草庐IT

TIMEZONE

全部标签

时间戳为零的 PHP 日期返回 1 小时

如果我执行以下操作:date("H:i:s",0);它返回01:00:00,而它应该返回00:00:00。它可能与我本地主机的时区有关吗?(UTC+1)如果是这样,我该如何解决? 最佳答案 在调用date()之前设置时区。您将使用date_default_timezone_set()为此:date_default_timezone_set('UTC');echodate("H:i:s",0);Seeitinaction如果您正在进行对时区敏感的操作,请不要忘记将其重新设置。或者:这是使用DateTime()的另一种方法:$dt=ne

php - DateTimeZone 类中的奇怪常量

DateTimeZone类中有奇怪的常量classDateTimeZone{constUTC=1024;constALL=2047;...}我试图找到关于它们的任何信息。也尝试过使用它们:$dtz=newDateTimeZone(DateTimeZone::UTC);//throwsExceptionwithmessage//DateTimeZone::__construct():Unknownorbadtimezone(1024)或$dt=newDatetime('2016-02-0110:00:00',DateTimeZone::UTC);//throwsExceptionwith

php - 为什么亚洲/迪拜时区缩写在 timezonedb 和 tzdata 之间不同?

我正在使用phptimezonedb2017.2。为什么它返回+04而不是亚洲/迪拜时区的GST?虽然默认内置phptzdata返回GST。$dt=newDateTime('now',newDateTimezone('Asia/Dubai'));$dt->format('T');//returnseitherGSTor+04php-v=PHP5.5.38(cli)(构建时间:2016年10月25日18:30:32) 最佳答案 基本上,因为时区数据随时间变化。听起来timezonedb是最新的,但tzdata不是。此更改是在IANAt

php - 在不相关的类中进行静态方法调用的替代方法是什么?

我正在使用PHP中的许多实用程序库对大型代码库进行单元测试和重构。有很多这样的库,充满了整个站点都在使用的便捷方法。大多数这些静态库与配置文件交互(通过另一个静态类)。这是一个很好的例子:classcore_lang{publicstaticfunctionset_timezone(){if(cfg::exists('time_zone')){putenv("TZ=".cfg::get('time_zone'));}}}然后,当然,还有另一层更具体的库在其他地方调用core_lang::set_timezone()在另一个函数中。这使得这些类很难编写单元测试,至少在PHPUnit中是这

php - 在PHP中使用系统的时区设置

所以我有一个用PHP编写的Web应用程序,可以在世界各地的不同Ubuntu服务器上运行。一些服务器将配置为在本地时间运行,一些将在UTC时间运行,这取决于客户。虽然我可以编辑php.ini文件并设置date.timezone,但手动输入此类数据总有一天会出错。如何让PHP使用系统中已经定义的时区(tzdata)?或者,换句话说:我如何从PHP系统中提取(长)时区名称以在date_default_timezone_set()中使用? 最佳答案 在AndreyKnupp在他的回答中提供的帮助下,我能够解决这个问题。echo"Time:"

php - 需要帮助升级 PEAR 以安装 PHPUnit

我正在尝试使用PEAR安装PHPUnit。这是我正在运行的...PEARVersion:1.7.2PHPVersion:5.3.8-ZS5.5.0ZendEngineVersion:2.3.0Runningon:WindowsNTL-PC6.1build7600(Windows7HomePremiumEdition)i586当我尝试安装时,出现错误提示我需要升级PEAR...C:\ProgramFiles(x86)\Zend\ZendServer\bin>pearinstallphpunit/PHPUnitDidnotdownloadoptionaldependencies:phpun

PHP date_create 函数,使用时区缩写将 UTC 时间转换为不同的时区

$placename=timezone_name_from_abbr("",$timezone*3600,false);$date=date_create($list['stamp'],timezone_open($placename));$datetimezone=newDateTimeZone('Europe/London');$dateTime=newDateTime($list['stamp'],$datetimezone);$dateTime->setTimeZone(newDateTimeZone($placename));编辑我尝试了以下建议的代码作为答案,它产生的时间比

PHP 错误的 DateTime::diff() 返回错误的 DateInterval

我有两个日期时间相差的问题。这是显示DateInterval对象的命令行:php-r"\$a=newDatetime('firstdayof4monthsagomidnight');\$b=newDatetime('firstdayof1monthagomidnight');var_dump(\$a->diff(\$b));"这里是DateInterval输出:classDateInterval#3(15){public$y=>int(0)public$m=>int(3)public$d=>int(3)public$h=>int(0)public$i=>int(0)public$s=>

php - 为什么一天不等于 24 小时时区设置为洛杉矶?

背景:我们的服务器PHP将时区设置为America/Los_Angeles工作中发现了这段代码$a=1457856000;$b=$a+24*3600-1;var_dump(date('Y-m-dH:i:s',$a));var_dump(date('Y-m-dH:i:s',$b));哪个输出:string(19)"2016-03-1300:00:00"string(19)"2016-03-1400:59:59"很奇怪,但是当我编码如下时:date_default_timezone_set('Etc/GMT+8');$a=1457856000;$b=$a+24*3600-1;var_dum

php - PHP 生成的不完整时区列表

我已尝试生成完整的时区集,如http://php.net/manual/en/timezones.php中指定的那样(UTC除外)使用以下代码:$zones=timezone_identifiers_list();print_r($zones);但是这个列表似乎跳过了大约50个区域,例如:太平洋/萨摩亚(与http://php.net/manual/en/timezones.php相比)我们做错了什么?phpinfo()显示:PHPVersion5.3.4ApacheVersionApache/2.2.3(CentOS)$uname-r2.6.18-028stab070.14编辑#2d