Php类对象DateTime转换为时间戳,然后返回到日期会产生10分钟的差异



因此,我正在编写一些文件代码,根据一系列日期对媒体文件进行重新排序,但在分析从文件名中提取的日期时,我遇到了这个问题

    $filename = "G:VideoHometestfolder1-01-201220120101031153.m2ts";
    $filebase =basename($filename);
          if(strlen(basename($fileBase,'.'.$info['extension']))==14){
                $fYear = substr($fileBase,0,4);
                $fMonth = substr($fileBase,4,2);
                $fDay = substr($fileBase,6,2);
                $fHour = substr($fileBase,8,2);
                $fMin = substr($fileBase,10,2);
                $fSec = substr($fileBase,12,2);
                $FNDateTime = new DateTime($fYear.'-'.$fMonth.'-'.$fDay.' '.$fHour.':'.$fMin.':'.$fSec);
                $FNDateTimeRe = date('d-m-Y H:m:s', $FNDateTime->getTimestamp());
                printf(' FileNameExtractedTime: '.$FNDateTimeRe);
}

这是奇怪的部分$FNDateTime对象-保持日期"2012-01-01 03:11:53"。然而,当我检查反转只是为了确保一切都好。。。$FNDateTimeRe将值显示为"01-01-2012 03:01:53"正如你所看到的,它正好少了10分钟。。。。

我检查了时区,并明确设置了

date_default_timezone_set('AUSTRALIA/Brisbane');

确保一致性,但没有骰子!!

我确信我错过了一件显而易见的事情:感谢任何帮助。!

开发环境:Windows 7、apache 2.2.22 php 5.3.13…

日期格式中的

m不是分钟,因为您已经使用了月份。尝试i

最新更新