我有一个问题,无法在我的表格上解决日期格式的问题
dd/mm/yyyy hh/mm/ss
需要转换case在数据库中注册,列类型为timestamp
所以我正在使用这个基本功能
function verify($a){
return $newDate = date("Y-m-d H:i:s", strtotime($a));
}
问题是当我放置超过 13 天时,日期不起作用。
只是滚雪球:
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]));
}
试试这个
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));
}
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);