我在Excel工作表03-Dec-10中以此格式显示日期。因此在将其插入数据库时不兼容。如何将日期转换为可接受的格式?
答案 0 :(得分:3)
$input = '03-Dec-10';
$date = DateTime::createFromFormat('d-M-y', $input);
echo $date->format('Ymd'); // or possibly 'Y-m-d'
这将输出20101203
,这可能是你想要的。如果它不完全是您所追求的,请查看here。
你也可以这样做:
$input = '20101203';
$date = DateTime::createFromFormat('Ymd', $input);
echo $date->format('d-M-y');
答案 1 :(得分:2)
虽然Jon的回答是正确的,但还有另一种选择:
$input = '03-Dec-10';
$date = date('Ymd', strtotime($input));
答案 2 :(得分:0)
如果您是从Excel本身执行此操作,则可以将此公式放入另一列
=TEXT(A2, "YYYYmmdd")
然后复制下来。这会产生兼容的8位数日期。
答案 3 :(得分:0)
对于更通用的方法,您始终可以将当前格式转储为字符串,就像使用它一样,并使用字符串操作进行子串和重组。我知道MySQL接受DATETIME
字段的字符串值。
$day = substr($input, 0, 2);
$month = substr($input, 2, 3);
switch($month){
case "Jan":
$month = "01";
break;
...
}