首页 > 解决方案 > 转换时间戳后获取错误日期

问题描述

我有

Fri Mar 13 2020 00:00:00 GMT+0100 (Ora standard dell’Europa centrale)-Mon Mar 23 2020 00:00:00 GMT+0100 (Ora standard dell’Europa centrale)

期待

Sardegna
13/03/2020-23/03/2020

但收到:

Sardegna
12/03/2020-22/03/2020

代码

$count = 0;
foreach($dates as $arr){
    $exploded = explode('-',$arr);
    $finalTime = '';
    foreach($exploded as $explode){
        $timeString = trim(explode('(',$explode)[0]);
        $finalTime .= (!empty($finalTime)) ? "-".date('d/m/Y', strtotime($timeString)) : date('d/m/Y', strtotime($timeString));
    }
    echo "<li>".$nations[$count]."</li>";
    echo "<li>".$finalTime."</li>";
    echo PHP_EOL;
    $count++;
}

标签: phpdatetime

解决方案


将您爆炸字符串的内容从更改(' GMT'

$count = 0;
foreach($dates as $arr){
    $exploded = explode('-',$arr);
    $finalTime = '';
    foreach($exploded as $explode){
        $timeString = trim(explode(' GMT',$explode)[0]);
        //                          ^^^^
        // or as you dont need the trim any more
        $timeString = explode(' GMT',$explode)[0];

        $finalTime .= (!empty($finalTime)) ? "-".date('d/m/Y', strtotime($timeString)) : date('d/m/Y', strtotime($timeString));
    }
    echo "<li>".$nations[$count]."</li>";
    echo "<li>".$finalTime."</li>";
    echo PHP_EOL;
    $count++;
}

这将删除时区,这是您的小时差异的原因


推荐阅读