晨曦啊 晨曦啊

PHP的strtotime计算2038年以上日期的时间戳错误(解决1970年前及2038年后问题)

in PHP,计算机 文章转载请注明来源!
//这个问题主要在32位的系统下出现,64位的不存在这样的问题。
//php 5.2+提供了DateTime类来处理这样的问题,参考方案如下(请注意时区的处理):
 
//1、Unix时间戳转日期
function unixtime_to_date($unixtime, $timezone = 'PRC') {
    $datetime = new DateTime("@$unixtime"); //DateTime类的bug,加入@可以将Unix时间戳作为参数传入
    $datetime->setTimezone(new DateTimeZone($timezone));
    return $datetime->format("Y-m-d H:i:s");
}
 
//2、日期转Unix时间戳
function date_to_unixtime($date, $timezone = 'PRC') {
    $datetime= new DateTime($date, new DateTimeZone($timezone));
    return $datetime->format('U');
}
 
echo date_to_unixtime("1546419209"); //输出2019-01-02 16:53:29
echo '<br>';
echo unixtime_to_date(date_to_unixtime("2999-1-2 16:53:29")); //输出32472262409

https://blog.csdn.net/m0_37865510/article/details/85249351?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2

jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

PHP计算机
发表新评论
仅有 1 条评论
  1. yhnf
    yhnf
    回复

    空包代发。快递单号选择www.kuaidzj.com

前篇 后篇
雷姆
拉姆