使用datepicker和timestamp处理变量

时间:2013-08-01 02:05:28

标签: php mysql

我遇到了问题,无法解决 在我的表格上,日期格式就像

dd/mm/yyyy hh/mm/ss

需要将case转换为在数据库中注册,列类型为timestamp

所以我正在使用这个基本功能

 function verify($a){               
    return $newDate = date("Y-m-d H:i:s", strtotime($a));
 }

问题是,当我放置超过13天时,日期不起作用。

3 个答案:

答案 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);