2011-03-31 127 views
1

我在Excel工作表中使用此格式的日期03年12月3日。所以在将其插入数据库时​​不兼容。如何将日期转换为可接受的格式。如何将日期从一种格式转换为另一种格式

专家,请帮助

+0

它是如何从Excel文件到PHP?你如何插入数据库?谨慎提供任何细节? – 2011-03-31 18:50:50

+0

是的朋友们......从Excel中可以看到03年12月3日,并作为字符串插入到数据库中 – Rajasekar 2011-03-31 18:53:41

+0

@Rajasekar:您仍然提供零个细节。这个日期是否自发地变成了有感知力和魔法本身的数据库? – 2011-03-31 18:54:43

回答

2

虽然乔恩的答案是正确的,这里是另一种选择:

$input = '03-Dec-10'; 
$date = date('Ymd', strtotime($input)); 
+0

我们可以在反向转换...像2010-12-3到03年12月3日?... plz帮助队友 – Rajasekar 2011-03-31 18:48:22

+1

应该接受大多数日期输入请参阅:http://us2.php.net/strtotime – UnkwnTech 2011-03-31 19:35:55

+0

这是一个很好的解决方案。为什么第二次问这个问题?这个答案怎么样并不令人满意? – 2011-03-31 19:50:16

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'); 
+0

虽然Ymd也可以工作,MySQL通常喜欢Y-m-d格式的日期插入。 – 2011-03-31 18:46:54

0

如果你从Excel本身这样做,你可以把这个公式到另一列

= TEXT(A2, “年月日”)

然后复制下来。这会生成一个兼容的8位数字日期。

0

对于一个更通用的方法,你可以随时转储当前的格式为一个字符串,怎么样,你拥有了它,并使用字符串操作子串和重组。我知道一个事实,即MySQL接受DATETIME字段的字符串值。

$day = substr($input, 0, 2); 
$month = substr($input, 2, 3); 
switch($month){ 
    case "Jan": 
     $month = "01"; 
     break; 
    ... 
} 
相关问题