我正在从excel文件中读取日期字段。如果日期是合适的日期,我能够成功阅读。但在某些情况下,我的日期就像
12年7月12日
由于它不是正确的日期格式,应该是07.12.2012。
我的脚本读作12-12-2007。但我希望输出为07-12-2012。
那么有什么办法让我可以检查格式是否会以dd.mm.yy(特殊情况)出现然后我可以使用
简单地分解这些值爆炸(”。 '' 12' 年7月12日)
并根据我的需要更改日期。
谢谢
答案 0 :(得分:1)
使用DateTime对象。
$date = DateTime::createFromFormat('d.m.y', '07.12.12');
echo $date->format('d.m.Y');
注意:我个人建议您保留日期格式标准(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];