PHP使用函数gmstrftime、gmdate输出英文时间日期的安全方法(RFC 1123格式)

分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/8/6

最近项目中要为一个rest服务写客户端,其中的签名校验需要在HTTP Header中生成一个RFC 1123格式的Date。

这个问题比较好解决,简单翻阅了PHP文档,使用gmstrftime这个函数就能解决。

代码如下:string gmstrftime ( string $format [, int $timestamp = time() ] )

调用的代码如下:

代码如下:echo gmstrftime("%a, %d %b %Y %T %Z",time());

//输出:Tue, 01 Apr 2014 16:16:07 GMT

调试过程中发现,在另外一台电脑上,输出并不像预期中的结果,然后产生了中文:

代码如下:

二, 01  4 2014 16:20:02 GMT

继续翻阅文档,发现文档的注释中有说明,这个函数的结果受setlocale结果的影响,既收当前系统默认的语言的影响。使用下面的命令可以查看当前系统已安装的语言:

代码如下:

locale -a

那么根据刚刚分析的结果,将setlocale强制指定为英语就没问题了,代码如下:

代码如下:setlocale(LC_TIME, 'en_US');

echo gmstrftime("%a, %d %b %Y %T %Z",time());

至此文章应该已经结束了,不过可惜的是测试用的Ubuntu机器上,因为是Live CD版,恰好没有en_US这个语言,但是有一个en_US.UTF-8。这个时候心理打鼓,这种做法似乎不太安全,我没办法确定运行代码的客户机上,到底有en_US还是有en_US.UTF-8。还好看到文档里的一段comments,可以用gmdate来代替,该函数不受setlocale结果的影响:

代码如下:gmdate('D, d M Y H:i:s') . ' GMT';

Case closed~需求虽小,要写好并不容易,以后还要多加努力。

php输出英文时间日期格式,PHP使用函数gmstrftime、gmdate输出英文时间日期的安全方法(RFC 1123格式)...相关推荐

  1. php日期相减函数,倒计时函数_计算两个时间相差值_PHP函数

    **PHP倒计时函数.求两个日期时间之间相差的时间函数.计算时差函数_PHP函数笔记** ```php /** * 求两个日期时间之间相差的时间 * (针对1970年1月1日之后,求之前可以采用泰勒公 ...

  2. hibernate mysql 时间比较_Hibernate中HQL函数汇总及获取当前时间进行比较举例

    在很多时候,我们负责的项目中,在数据访问层(DAO层)通常我们会使用sql语句或者hql语句,而在我们使用hql语句拼接时有时会报错,通常的原因是:我们使用了标准的sql语句,开启的确是hiberna ...

  3. python输出print怎么换行_python3的print函数怎么换行输出

    python中的print函数主要用于输出. 在我们常用的print()方法进行输出时,通常输出结果是整行显示出来的,这时候我们需要考虑一下,我们输出的结果需不需要换行? 不需要换行的方法也是嗯容易的 ...

  4. 计算机获取的系统时间是什么时间格式,【excle怎样获取当前日期格式】如何在EXCEL中显示当天的日期和时间?...

    Excel中,如何用函数获取当前日期(即系统日期)的月份值? 个=month(today()). 当月=month(today()),当日=day(today()). =TODAY()获得当前日期,形 ...

  5. 解决时间输出格式带 T 带 000+00:00 输出时间多了个T 返回时间格式带T

    困扰了N多天的输出时间格式问题,人都麻了 在 SpringBoot 项目中使用了 MyBatis-Plus多条件分页连表查询后出现了这个问题,查询出来的时间被加上了一个T和 000+00:00 很明显 ...

  6. html fmt转换日期格式,JSP JSTL fmt:parseDate标签:转换为时间

    标签用于解析字符串为日期对象,被解析的字符串可以指定日期模式来灵活地表达日期对象. 语法: [dateStyle="{default|short|medium|long|full}" ...

  7. 时间日期类JAVA包含地区属性_Java常用类 | 时间和日期类

    开发中经常涉及到时间与日期,记录下Java中与时间和日期相关的API JDK8之前与时间日期相关的类 java.lang.System类 System类提供了一个公共的静态方法currentTimes ...

  8. python数字转日期函数_【转】Python 日期和时间

    本文转自:http://www.runoob.com/python/python-date-time.html Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Pytho ...

  9. html时间框自动更新,原生javascript实现自动更新的时间日期

    能够动态变化的事物总比静态的更能够吸引人,甚至更有实用效果,比如能够自动变化的时间日期效果就是如此,下面就通过代码实例介绍一下如何实现此效果,代码实例如下: 一.具体代码 脚本之家 var t = n ...

最新文章

  1. 【Python】自定义排序函数 - 示例
  2. 逆元+费马小定理+扩展欧几里得
  3. 【异常(待解决)】org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respond...
  4. zookeeper集群自动启动-关闭-查询的shell脚本
  5. 面试鹅厂,我三面被虐的体无完肤……
  6. C++多重继承师生类复盘
  7. 几种ELK常见的架构模式
  8. 3S基础知识:MapInfo应用MapX编程实现地图数据查询
  9. LM2596电源降压调整器(150KHz,3A)020
  10. 计算机一级如何添加对角线,如何在表格中添加对角线
  11. 锁(synchronized和Lock)
  12. 部署tomcat之appBase和docBase
  13. 程序人生 - 座位险和驾乘险有什么区别,买了后者还需要前者吗?
  14. JAVA微信开发-新手接入指南
  15. mac 开机启动php,mac系统,php-fpm加入开机启动项
  16. 66.电视噪音动画特效
  17. 统计学习方法-第十章
  18. 告诉你四川火锅的秘密配方
  19. 图文讲解如何在outlook里设置绑定QQ企业邮箱教程
  20. 【深度学习概述学习小结】

热门文章

  1. 安装ADI的CCES ubuntu16.04 打不开出现错误解决方法
  2. GTLC非官方“服用”指南
  3. oracle通过软连接裸设备建库
  4. 两种远程控制他人电脑的方法!
  5. 13张IT职业技能学习图谱
  6. 快速一键部署测试环境,降低环境配置风险
  7. 狐火 不兼容event.srcElement 解决方法
  8. python数字大小写转换代码_【经验分享】20个Python代码段,好用到哭!
  9. 外贸人的主流社交工具多开方法
  10. jmeter 循环控制器、计数器的使用