【发布时间】:2018-07-11 08:20:02
【问题描述】:
我需要检查一个日期是否有格式来保存它,我使用函数 strptime() :
if (!strptime($contact[14], '%Y') && isset($contact[14]) && $contact[14] != ""){
$date_naissance = $contact[14];
dsm("BON FORMAT : ".$contact[14]);
} else {
$date_naissance = null;
dsm("MAUVAIS FORMAT : ".$contact[14]);
}
问题是格式似乎不起作用,我需要使用格式年份验证所有日期(例如:2010、2020、..)但它们没有验证,我不明白为什么,在 php 日期文档中 Y 表示 4 位数的年份。
有人有想法吗?
编辑:使用 CreateFromFormat :
if(DateTime::createFromFormat('Y', $contact[22])){
dsm("Bon format : ".$contact[22]);
$date_derniere_inscription = strtotime($contact[22]);
} else {
$date_derniere_inscription = null;
}
但是只有两位数字的日期,甚至是0值的日期也被验证。
“Y”格式似乎不起作用,所有值(例如,2012 以及 96 或 0)都会创建一个日期,而 0 值会创建“0000-07-11 10:38”: 45.000000' .. 这种格式有什么问题?
【问题讨论】:
-
$contact[22]中的值是多少? -
我有多个值,这里是输出: Bon 格式:0 Bon 格式:1996 Bon 格式:96,你可以看到所有的值都经过验证
-
还有一个问题,例如 2012 年的值,输出是 2012-07-11 10:33:47.000000,我需要 2012-01-01 00:00:0000