0

我正在从 excel 文件中读取日期字段。如果日期是正确的日期,我可以成功阅读它。但在某些情况下,我有约会之类的

2012 年 7 月 12 日

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

我的脚本将其读取为 2007 年 12 月 12 日。但我希望输出为 07-12-2012。

那么有什么方法可以检查格式是否为 dd.mm.yy (特殊情况),然后我可以简单地使用

爆炸('.','07.12.12')

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

谢谢

4

2 回答 2

1

使用日期时间对象。

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

CodeViper 演示。

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

已编辑:用于检查您的日期是否在 dmy 中的正则表达式条件

$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
 }
于 2013-04-03T12:56:15.310 回答
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];
于 2013-04-03T13:43:36.930 回答