如果以特定格式给出日期,则更改日期格式的特殊条件

时间:2013-04-03 12:50:52

标签: php cakephp

我正在从excel文件中读取日期字段。如果日期是合适的日期,我能够成功阅读。但在某些情况下,我的日期就像

12年7月12日

由于它不是正确的日期格式,应该是07.12.2012。

我的脚本读作12-12-2007。但我希望输出为07-12-2012。

那么有什么办法让我可以检查格式是否会以dd.mm.yy(特殊情况)出现然后我可以使用

简单地分解这些值

爆炸(”。 '' 12' 年7月12日)

并根据我的需要更改日期。

谢谢

2 个答案:

答案 0 :(得分:1)

使用DateTime对象。

$date = DateTime::createFromFormat('d.m.y', '07.12.12');
echo $date->format('d.m.Y');

CodeViper Demo.

注意:我个人建议您保留日期格式标准(d-m-Y),该格式由-&不是.此方法也仅支持PHP版本> = 5.3.0。

已编辑:正则表达状态,以检查您的日期是否在d.m.y

$pattern = '/^[0-9]{2}\.[0-9]{2}\.[0-9]{2}$/';
if(preg_match($pattern,$date,$matches)){
   #conversion goes here    
}

你也可以使用,

 if(substr_count($date,'.') == 2){
    #conversion goes here
 }

答案 1 :(得分:0)

只需检查长度:

$pieces = explode('.', '07.12.12');
if (strlen($pieces[2]) !== 4) {
    $pieces[2] = '20' . $pieces[2];
}

// proper date in YYYY-MM-DD format
$date = $pieces[2] . '-' . $pieces[1] . '-' . $pieces[0];