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

时间:2013-12-02 16:42:22

标签: php datetime

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

    $filename = "G:\Video\Home\testfolder\1-01-2012\20120101031153.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 ...

1 个答案:

答案 0 :(得分:1)

日期格式中的

m不是分钟,因为您已经将它用于。试试i