首页>建站相关>php的时间格式与时区设置

php的时间格式与时区设置

写了一个页面向某个api请求一些数据,然后保存为一篇新的文章,文章的标题就是“当天的日期+xx新闻”,程序首先通过date函数获取当前日期,组合成标题后,先查询本地是否有同名文章,再判断api发送过来的数据是否是当天更新的数据,如果数据不是当天的,则不生成文章,如果没有同名,api的数据发布时间也能对上,则从api返回的数据中提取数据发布一篇文章。第一天程序运行的很好,第二天7点50多的时候到岗,发现访问页面后并没有生成文章。

时区问题

第一反应是api的数据可能尚未更新,提取api的数据看了一下,人api老勤快了,早早把数据更新完了。翻看了一遍程序也觉得没有什么明显错误,重新刷新了一下生成文章页,发现这次成功生成了一篇文章,怎么还时灵时不灵呢?看了一下电脑时间,8点过一点,隐约记得我国的时间属于东八区,于是将php的date的默认返回时间用echo输出看了一下,发现确实刚过零点。也就是说7点50多分请求失败的那几次,可能是因为在系统默认时区,日期还是上一天的日期,所以判断的同名文章,也是以昨天发布的文章为参照物。

php修改默认时区

可以通过修改php的配置文件来设置默认时区,只需要在php.ini里加上找到date.timezone项,设置date.timezone = “Asia/Shanghai”,重启php环境就ok了。但考虑到个人使用的是wordpress博客,担心会导致与博客的时间设置相冲突,所以并不想去固定配置,只需要在调用的时候修改,调用完不影响其他程序的正常运行。所以采用了在页面中添加语句的方式:

date_default_timezone_set("PRC");

添加完上述语句后,利用date函数输出的时间与本地时间就一致了,为了确保没有改动设置,又删除了上述语句试了一下,输出时间又回到了8小时之前。

date_default_timezone_set的参数

上面函数中的“PRC”关于PRC,指的是中华人民共和国,因为时区众多,函数也支持众多的参数,数量之多,一锅炖不下,这里简单列举几个:

  • Asia/Shanghai – 上海
  • Asia/Chongqing – 重庆
  • Asia/Urumqi – 乌鲁木齐
  • Asia/Hong_Kong – 香港
  • Asia/Macao – 澳门
  • Asia/Taipei – 台北
  • Asia/Singapore – 新加坡

上面修改默认时区的语句,也可以改写为这样:

date_default_timezone_set("Asia/Shanghai");

php日期函数date

php中日期函数date不仅可以输出日期,也支持时间的输出:

echo date("Y-m-d");
//输出结果:2022-04-29
echo date("y-m-d");
//输出结果:22-04-29
echo date("H-i-s");
//输出结果:21-32-45
echo date("h-i-s");
//输出结果:09-32-45

以上语句中的字母都有其特定的涵义,但“-”只是修饰符,我们完全可以写成这样,当然这样除了让人找不着北之外毫无实际意义:

echo date("H**i**s");
//输出结果:21**35**42
echo date("h&&i&&s");
//输出结果:09&&35&&42

php日期函数格式化标识符

标识符 涵义 返回数据
Y 年份的四位数表示 例:2022
y 年份的两位数表示 例:22
m 月份的数字表示 从01到12
d 一个月中的第几天 从01到31
H 24小时制,带前导零 00到23
h 12小时制,带前导零 01到12
i 分,带前导零 00到59
s 秒,带前导零 00到59
l(小写L) 星期几的完整的文本 例:friday

这里仅罗列了几个常用的标识符,完整的列表可以参考菜鸟教程的相关页面:PHP date()函数

标签: PHP

移动端可扫我直达哦~

推荐阅读

php 2024-04-24

Php中数组array的定义增删等相关操作

PHP 中的 array 实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。此类型针对多种不同用途进行了优化; 它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列等等。 由于 arr...

建站相关 PHP

php 2024-04-20

php利用SimpleXML模块解析xml文件

本来想用一个xml文件来获取不断更新的数据,接触这个模块后,发现似乎不能在顶部插入节点,比如有个channel节点,插入子节点始终只能从底部插入,但博主又希望新的内容在channel节点的头部。每次重新装配节点似乎过于复杂,考虑利用j...

建站相关 PHP

php 2024-04-19

php获取远程xml文件并保存到本地

“自从联盟和部落并肩作战,共同抵抗燃烧军团的入侵已经过去了四年。”…错了,自从上次利用rm -rf清洗掉:“虾比比”站点的数据,已经过去了两年。曾经利用php获取远程文件并保存到本地的知识如同部落和联盟之间脆弱的协议,早已荡然无存。倒...

建站相关 PHP

php 2023-10-27

为博客文章添加是否已被百度收录的提示信息

部分主题里在文章的标题栏下方会显示一些文章的相关信息,比如目录啊,作者啊,文章的发布日期等等。其中也有包含文章是否被百度收录的,本身“小鸟数据”这个站点配置了“sitemap.xml”,也提交了百度,是否收录就我为鱼肉了。但是偶尔还是...

建站相关 PHP

php 2023-05-03

php中的替代语法switch的冒号写法

最早接触php语句,是尝试查看wordpress模板的源代码。所以相比常规的大括号写法,更为熟悉的反而是这类带冒号的写法。真正尝试过修改模板之后,会真切体会到这种书写方式的便利。它使得HTML和PHP混合页面代码更加干净整齐,也使代码...

建站相关 PHP

php 2022-10-25

php该用什么命令打印数组

对于wordpress的命令不熟悉,echo打印值的时候经常返回一个array对象。如果不知道array的内部结构,提取具体数据就无从下手,所以有时候我们会想要打印出数组的所有内容,以观察该数组的数据结构。php中有两个命令可以在屏幕...

建站相关 PHP

php 2022-10-22

php在线解压解决免费空间压缩包过大问题

用过一段国外的免费空间,一般都是白天访问速度凑合,一到晚上半天打不开后台页面,前台还是可以访问的,也就比白天慢几条街。因为白天要上班,所以一般博主也就晚上打开站点学习一下建站呀修改主题呀之类的操作,由于正常使用时间段完美被错开,所以最...

建站相关 PHP

php 2022-10-22

php中的单引号和双引号

解析变量上的区别PHP会解析双引号中的变量,而不会解析单引号中的变量。也就是说,如果使用单引号定义的字符串中出现变量,在输出时变量会被原样输出,不会解析成变量的值。而如果使用双引号定义的字符串中存在变量,在输出时变量会被解析为具体的值...

建站相关 PHP

php 2022-10-21

后台php如何与前端js进行数据交换

想用js获取wordpress的options中的部分数据,查询到几种数据交换的方法,先做个记录,后续补完。同页面内的数据交换需要获取的是json数据,直接用php在页面中echo变量,页面上的js可以直接使用options变量,很方...

建站相关 PHP

php 2022-10-17

php对于json数据的编码与解码

想实现一个wordpress后台,跟着阿树工作室的教程学习。自己php基础薄弱,看到利用类实现后台的章节就跟不上了,刚好学到js的极简方法实现一个类,考虑能否在前台用类实现页面,将页面数据汇总成json,统一提交给后台,这样就避开了不...

建站相关 PHP

php 2022-10-13

php中的in_array()函数

in_array()函数搜索数组中是否存在指定的值。如果search参数是字符串且type参数被设置为 TRUE,则搜索区分大小写。in_array的语法in_array(search,array,type) 参数 描述 ...

建站相关 PHP

php 2022-10-12

centos下yum安装php7.4remi源

一直使用centos7.x版本,利用yum工具安装一些软件,centos的更新与默认软件选择都相对保守,centos7.x版本中yum默认来源的php版本一般都是php5.4,到了centos8.x版本,php版本才更新为php7.2...

建站相关 PHP