我遇到了问题,无法解决 在我的表格上,日期格式就像
dd/mm/yyyy hh/mm/ss
需要将case转换为在数据库中注册,列类型为timestamp
所以我正在使用这个基本功能
function verify($a){
return $newDate = date("Y-m-d H:i:s", strtotime($a));
}
问题是,当我放置超过13天时,日期不起作用。
答案 0 :(得分:1)
滚雪球:
function verify($a) {
$dt = explode(' ',$a);
$dt1 = explode('/',$dt[0]);
$dt2 = explode('/',$dt[1]);
return $newDate = date('Y-m-d H:i:s',mktime($dt2[0],$dt2[1],$dt2[2],$dt1[1],$dt1[0],$dt1[2]));
}
答案 1 :(得分:0)
试试这个
function change_to_timestamp($a) {
$dt = explode(' ',$a);
$date1 =str_replace('/','-',$dt[0]);
$date2 = str_replace('/',':',$dt[1]);
return date('Y-m-d H:i:s',mktime($date1.$date2));
}
答案 2 :(得分:-1)
strtotime()可能不是您最好的选择,因为您很可能在日期的“dd”和“mm”部分之间遇到一些歧义。你不能做13天,因为它认为你正在尝试13个月。
也许更好的函数是DateTime :: CreateFromFormat(),因为您有一个已知的日期格式作为输入。 http://www.php.net/manual/en/datetime.createfromformat.php
function verify($a){
$date = DateTime::CreateFromFormat("d/m/Y H/i/s", $a);
return date("Y-m-d H:i:s", $date->getTimestamp());
}
该概念应该有效,但代码未经过复制/粘贴测试。
希望这有助于。
修改强> 修复了一些复制/粘贴语法错误。 没有提到这个答案需要php> = 5.3。
另外,我的第一个回答是困扰我,混合了新旧日期的方式,所以有这样的:
function verify($a){
$date = DateTime::CreateFromFormat("d/m/Y H/i/s", $a);
return $date->format("Y-m-d H:i:s");
}
或者更便携的东西:
function ChangeDateFormat($old_format, $new_format, $date_string) {
$date = DateTime::CreateFromFormat($old_format, $date_string);
return $date->format($new_format);
}
可以这样称呼:
$newDate = ChangeDateFormat("d/m/Y H/i/s", "Y-m-d H:i:s", $oldDate);