PHP--y2k38的解决方法已经时间格式的常用转换
y2k38又名千年虫问题,又称Uinx Millennium Bug,此漏洞将会影响到所有32位系统下用Unix时间戳整数来记录时间的PHP,及其它编程语言。
例如:$str = "2040-01-01 00:00:00"; 在window输出的是: var_dump( strtotime($str) );
var_dump( date('Y-m-d H:i:s',strtotime($str)) );

输出的时间有问题!!!
一.解决方法:
第1种方法:把格式化时间转化为Uninx时间戳
/*如果在php中希望解决y2k38的问题,可以使用DateTime类*/ //第1种方法:把格式化时间转化为Uninx时间戳
$dt = new DateTime($str); //使用2040年作为构造函数
$time = $dt -> format('U'); //Unsigned Uninx-TIme
echo $time;

第2种方法:把Uninx时间戳转化为格式化时间
//第2种方法:把Uninx时间戳转化为格式化时间
$dt2 = new DateTime('@2208960000');
$tz = timezone_open('Asia/HONG_KONG');
$dt2 -> setTimeZone($tz);//把时区调整为亚洲香港时间
//echo $dt2 -> format('Y-m-d H:i:s'); //时区默认为UTC时间

二.拓展:使用DateTime获取当前的unix时间并格式化
$dt3 = new DateTime();
$current = $dt3->format('U');
//echo $current;
$dt4 = new DateTime('@'.$current);
$tz = timezone_open('Asia/HONG_KONG');
$dt4 -> setTimeZone($tz);//把时区调整为亚洲香港时间
echo $dt4 -> format('Y-m-d H:i:s'); //时区默认为UTC时间

PHP--y2k38的解决方法已经时间格式的常用转换的更多相关文章
- Python-时间戳、元组时间的格式、自定义时间格式之间的转换
一.时间戳.元组时间的格式.自定义时间格式之间的转换 1.下面是三者之间的转换关系: 2.代码如下: import time import datetime print(time.time()) #获 ...
- iOS 之 时间格式与字符串转换
这个知识点涉及到三个类:NSDate.NSString,另外是一个最重要的类NSDateFormatter.它起到格式转换的作用,至于方法查看头文件就好了.时间格式注意下:yyyyMMddHHmmss
- 格林威治时间格式(GMT)与普通时间格式的互相转换
GMT --> 普通时间格式: 方法: function GMTToStr(time){ var date = new Date(time) var Str=date.getFullYear() ...
- js_时间戳和时间格式之间的转换。
关于我的理解,简单明了点: 时间戳:把一个日期使用一个数字表示出来,这个数字就是这个日期的秒数. 日期:就是我们常见的时间表现形式. 时间戳对于一般看时间不够直观明了,可是在程序的世界里作用可大了. ...
- js时间戳和时间格式之间的转换
//时间戳转换成日期时间2014-8-8 下午11:40:20 function formatDate(ns){ return new Date(parseInt(ns) * 1000).toLoca ...
- js中时间戳和时间格式之间的转换
//时间格式转化 getNowDate(timestamp) { var date = new Date(timestamp); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 va ...
- python解决json序列化时间格式
简单实例 import json from datetime import datetime from datetime import date info = { "name": ...
- python scrapy解码方法和时间格式转换
import scrapy from datetime import datetime class BianSpider(scrapy.Spider): name = 'bian' # allowed ...
- Qt中QFtp获取带有中文的文件名称出现乱码的解决方法(执行操作前就转换编码)
今天研究了一下QFtp这个类,发现访问得到的文件名称中一旦出现中文,不管怎么转换编码格式,最终显示出来的始终都是乱码.由于编码错误,我写了两个函数用于互相转换编码. 一个是由正常编码转为QFTP上所谓 ...
随机推荐
- Jeecg-Boot 2.0 版本发布,基于Springboot+Vue 前后端分离快速开发平台
目录 Jeecg-Boot项目简介 源码下载 升级日志 Issues解决 v1.1升级到v2.0不兼容地方 系统截图 Jeecg-Boot项目简介 Jeecg-boot 是一款基于代码生成器的智能开发 ...
- 分布式锁的Redis实现
当我们开始开发项目部署运行时,项目规模不大,只是在一个JVM实例中运行,对同一资源的并发访问用JDK自带的锁机制就可以解决资源同时访问的问题.而随着项目的不断发展,单体应用已经无法满足日益增长的访问需 ...
- Django 连接MySQL的驱动设置
对于在Django 中连接MySQL 的驱动,有以下三种: 1) mysqlclient 2) mysql-connector-python 3) pymysql (建议:这个包已经有一年未升级了,本 ...
- [Ynoi2012]D1T1
题目 套路的根号分治啊 我们设置一个值\(S\) 对于\(S\leq x\)的操作,我们直接暴力修改,显然这样只会修改\(\frac{n}{S}\)次,所以我们需要一个能够\(O(1)\)修改的数据结 ...
- C++和C#之间的数据类型对应关系
最近接触WINAPI比较多,一直要楂数据类型间的对应关系,所姒就转载一下~ # Windows Data Type .NET Data Type # BOOL, BOOLEAN Boolean or ...
- 《数据结构与算法分析——C语言描述》ADT实现(NO.05) : 散列(Hash)
散列(Hash)是一种以常数复杂度实现查找功能的数据结构.它将一个关键词Key,通过某种映射(哈希函数)转化成索引值直接定位到相应位置. 实现散列有两个关键,一是哈希函数的选择,二是冲突的处理. 对于 ...
- sql server2008安装时提示重启计算机失败怎么办
安装SQL Server 2008时,经常会遇到这样一个问题,软件提示“重启计算机失败”,如果忽略的话,会给后面的安装带来很大的麻烦,这里如何解决呢? 工具/原料 注册表 解决方法 在键盘上按 ...
- PKU 百练OJ Arbitrage
http://bailian.openjudge.cn/practice/2240/ #include <iostream> #include <string> #includ ...
- 7.Spring切入点的表达式和通知类型
1.切入点的表达式 表达式格式: execution([修饰符] 返回值类型 包名.类名.方法名(参数)) 其他的代替: <!-- 完全指定一个方法 --> <!-- <aop ...
- 19-10-18-Night-U
话说T3: 一句话题意……见过这个嘛…… 于是:$\sum \limits_{i!=j} \binom{a_i+b_i+a_j+b_j}{a_i+a_j}$ ------------前言结束----- ...