php实现兼容2038年后Unix时间戳转换函数

使用方法跟旧的函数一模一样.

代码如下:

function fun_strtotime($var1=0,$var2=0){
    if(!$var2){
        $var2 = $var1;
        $var1 = 0;
    }
    if(is_numeric($var2)){
       $var2 = '@'.$var2;
    }
    try{
        $date  =  new DateTime($var2);
        $date->setTimezone(new DateTimeZone(date_default_timezone_get()));
    }catch(Exception $e){ $date = 0;}
    if(is_object($date)){
        if($var1)
            $date->modify($var1);
        return $date->format('U');
    }else{
        return 0;
    }
}
function fun_date($var1=0,$var2=0){
    if(!$var2){
        $var2 = $var1;
        $var1 = 'Y-m-d H:i:s';
    }
    try{
        $date  =  new DateTime('@'.$var2);
        $date->setTimezone(new DateTimeZone(date_default_timezone_get()));
    }catch(Exception $e){ $date = 0;}
    if(is_object($date)){
        return $date->format($var1);
    }else{
        return '';
    }
}

以上就是本文所述的全部内容了,希望对大家学习php有所帮助。

(0)

相关推荐

  • 关于PHP转换超过2038年日期出错的问题解决

    前言 最近在写一个项目接口.测试中发现服务器上测试正常的功能,在本地一直有问题.一步步的排查,最终锁定问题是由于函数strtotime返回了一个false值,导致数据插入数据库失败. 相同代码运行结果不一样,原因那就是环境不一致导致.要么是PHP版本不同,要么是位数不同. 我电脑是64位的.这里是PHP位数不一致,服务器使用64位,而我本地是32位.而strtotime被传入了一个字符串2050-1-1 23:59:59,该参数大于了2038-1-19 03:14:07所以在32位PHP下直接返

  • PHP中大于2038年时间戳的问题处理方案

    PHP有效的时间戳典型范围是格林威治时间 1901 年 12 月 13 日 20:45:54    到 2038 年 1 月 19 日 03:14:07.(此范围符合 32    位有符号整数的最小值和最大值).不过在 PHP 5.1 之前此范围在某些系统(如    Windows)中限制为从 1970 年 1 月 1 日到 2038 年 1 月 19 日. 64位系统就不会受影响了,如果在32系统可以使用new DateTime解决 复制代码 代码如下: $date = '2090-10-01

  • php calender(日历)二个版本代码示例(解决2038问题)

    注意32位机有2038问题,所以32位服务器的年限范围1970年~2038年 我们还可以使用DateTime来规避这个问题(这样与32位64位无关了) 复制代码 代码如下: <?php/** *  * 我的日历 * date_default_timezone_set date mktime * @param int $year * @param int $month * @param string $timezone * @author fc_lamp * @blog: fc-lamp.blog

  • php实现兼容2038年后Unix时间戳转换函数

    使用方法跟旧的函数一模一样. 复制代码 代码如下: function fun_strtotime($var1=0,$var2=0){     if(!$var2){         $var2 = $var1;         $var1 = 0;     }     if(is_numeric($var2)){        $var2 = '@'.$var2;     }     try{         $date  =  new DateTime($var2);         $dat

  • JS的时间格式化和时间戳转换函数示例详解

    JS的时间格式化和时间戳转换函数 //格式化时间 function dateFormat(fmt,date){ var o = { "M+" : date.getMonth()+1, //月份 "d+" : date.getDate(), //日 "h+" : date.getHours(), //小时 "m+" : date.getMinutes(), //分 "s+" : date.getSeconds

  • 用VBS获取Unix时间戳的函数代码

    VBS中没有类似C标准库中的time函数,怎么获取Unix时间戳呢?乍一看很简单: 复制代码 代码如下: Function UnixTime() UnixTime = DateDiff("s", "01/01/1970 00:00:00", Now()) End Function 一个很想当然的方法,仅仅注意到了"1970年1月1日0时0分0秒",而忽略了"协调世界时". 协调世界时,又称世界标准时间或世界协调时间,简称UTC

  • PHP中UNIX时间戳和日期间的转换与计算实例

    UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式.以32位整数表示格林威治标准时间,例如,使用证书11230499325表示当前时间的时间戳.UNIX时间戳是从1970年1月1日零点(UTC/GMT的午夜)开始起到当前时间所经过的秒数.1970年1月1日零点作为所有日期计算的基础,这个日期通常成为UNIX纪元. 因为UNIX时间戳是一个32位的数字格式,所以特别适用于计算机处理,例如计算两

  • PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)

    写过PHP+MySQL的程序员都知道有时间差,UNIX时间戳和格式化日期是我们常打交道的两个时间表示形式,Unix时间戳存储.处理方便,但是不直观,格式化日期直观,但是处理起来不如Unix时间戳那么自如,所以有的时候需要互相转换,下面给出互相转换的几种转换方式. 一.在MySQL中完成 这种方式在MySQL查询语句中转换,优点是不占用PHP解析器的解析时间,速度快,缺点是只能用在数据库查询中,有局限性. 1. UNIX时间戳转换为日期用函数: FROM_UNIXTIME() 一般形式:selec

  • C#中系统时间和UNIX时间戳互相转换

    在项目开发过程中,有时会遇到不同程序之间相互调用数据,数据中不免会包含时间,比如ASP.NET调用PHP,牵扯到时间就要做一下处理,PHP程序中一般存取的都是UNIX时间,不像ASP.NET存储的是年月日时分秒,这样就需要做一下转换,代码如下: 一.将系统时间转换成UNIX时间戳 复制代码 代码如下: DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970,1,1)); DateTime dtNow =

  • php UNIX时间戳用法详解

    本文实例讲述了php UNIX时间戳用法.分享给大家供大家参考,具体如下: 时间戳是文件属性中的创建.修改.和访问时间.数字时间戳服务是Web网站安全服务项目之一,能提供电子文件的日期和时间信息的安全保护. 时间戳的优点是: 可用变化的加密数值,防止数值被窃取后非法重复利用,起到加密的作用.时间戳主要依赖于时间,在约定的一段时间内产生唯一的一个数值. UNIX时间戳 在UNIX系统中,日期与时间表示为自1970年1月1日零点起到当前时刻的秒数,这种时间被称为UNIX时间戳,以32位二进制数表示.

  • python获取当前时间对应unix时间戳的方法

    本文实例讲述了python获取当前时间对应unix时间戳的方法.分享给大家供大家参考.具体分析如下: Unix timestamp:是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒 import datetime import time print time.mktime(datetime.datetime.now().timetuple()) 输出为: 1431674373.0 PS:这里再为大家推荐一个本站Unix时间戳转换工具,附带了各种语言下Unix时间戳的操作

  • python正常时间和unix时间戳相互转换的方法

    本文实例讲述了python正常时间和unix时间戳相互转换的方法.分享给大家供大家参考.具体分析如下: 这段代码可以用来转换常规时间格式为unix时间戳,也可以将unix时间戳转换回来, 例如:1332888820 格式转换成 2012-03-28 06:53:40的形式 # -*- coding: utf-8 -*- import time def timestamp_datetime(value): format = '%Y-%m-%d %H:%M:%S' # value为传入的值为时间戳(

  • JavaScript输出当前时间Unix时间戳的方法

    本文实例讲述了JavaScript输出当前时间Unix时间戳的方法.分享给大家供大家参考.具体如下: 下面的代码通过Date对象的getTime()放回unix时间戳,即从1970年1月1日到当前时间的秒数 <!DOCTYPE html> <html> <body> <p id="demo"> Click the button to display the number of milliseconds since midnight, Ja

随机推荐