2021-10-21

PHP中应该怎样去完成时区的设置?

在之前的文章中给大家带来了《带你一起了解PHP的错误类型和错误级别》,其中详细介绍了PHP中的错误类型和错误级别,本篇文章我们一起来看一下,我们应该怎样在PHP中设置时区,希望对大家有帮助!

在我们的日常生活中,时间是很重要并且必不可少的,同样的在PHP中也是一样的,在我们的日常开发中,有时用到时间需要储存起来记录某件事的时候,我们应该怎样去设置时间呢?

在PHP中可以通过日期的时间函数来获取日期和时间,PHP中的日期和时间函数是通过服务器的时间来设置,服务器的时间默认是的是格林尼治时间。

PHP中时区的设置

想要更改PHP中的时间为本地时间的话需要更改PHP语言中的时区设置。在PHP中设置语言的时区有三种方法,接下来我们一起来看看:

  • 在配置文件中配置

PHP中的配置文件就是php.ini文件,至于怎么找到这个文件,我在之前的《PHP如何上传文件?看完就明白了!》中讲到过,大家感兴趣的话可以点击查看一下。找到php.ini之后,在文件中查找date.timezone,找到如下结果:

1021.01.png

其中Asia/Shangha表示的就是时区,也叫做时区标识符。这样的时区标识符还有很多,给大家列举一些常用的时区标识符:

Asia/Shanghai —— 上海

Asia/Chongqing —— 重庆

Asia/Hong_Kong —— 香港

Asia/Macao —— 澳门

Asia/Taipei —— 台北

PRC —— 中国时区

需要注意的是,当我们时区设置完成之后需要重启一下服务器,失去的设置才生效。

  • 使用 date_default_timezone_set() 函数设置时区

在PHP中,date_default_timezone_set() 函数能够所有的日期函数设置一个默认时区,它的语法格式如下:

date_default_timezone_set(时区标识符)

示例如下:

<?php
    date_default_timezone_set('Asia/Hong_Kong');
    echo '香港的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>';
    date_default_timezone_set('Asia/Macao');
    echo '澳门的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>';
    date_default_timezone_set('Asia/Shanghai');
    echo '上海的当前时间为:'.date('Y-m-d H:i:s',time());
?>

输出结果:

1021.02.png

由上述结果可以看出,通过date_default_timezone_set() 函数能够设置一个时区。

  • 使用 ini_set() 函数设置时区

PHP 中的 ini_set() 函数可以设置指定配置选项的值,它会在脚本运行时保持新的值,并在脚本结束时恢复。函数的语法格式如下:

ini_set(待修改的选项, 该选项新的值)

示例如下:

<?php
    ini_set('date.timezone', 'GMT');
    echo '当前的格林尼治时间为:'.date('Y-m-d H:i:s',time()).'<br>';
    ini_set('date.timezone', 'Asia/Hong_Kong');
    echo '香港的当前时间为:'.date('Y-m-d H:i:s',time()).'<br>';
    ini_set('date.timezone', 'Asia/Shanghai');
    echo '上海的当前时间为:'.date('Y-m-d H:i:s',time());
?>

输出结果:

1021.03.png

由上市示例看出,当脚本恢复时,重新配置一个新的选项,设置的时区选项会保持新的值。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上就是PHP中应该怎样去完成时区的设置?的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

  • 相关标签:PHP 时区
  • https://www.php.cn/php-weizijiaocheng-483278.html

    发表回复

    Your email address will not be published. Required fields are marked *