将12小时时间格式转换为24小时,就像在mysql中一样

时间:2013-02-18 06:41:36

标签: mysql cakephp time

我希望将在CakePHP中以数组格式返回的时间转换为MySQL中的24小时格式。 以下是代码:

$this->request->data['Rideoffer']['DepartureTime']

它返回:

array(
'hour' => '05',
'min' => '21',
'meridian' => 'am'

现在我希望将其转换为MySQL时间格式:00:00:00 - 24格式,以便我可以检索与此特定时间匹配的记录。 我该怎么做?

2 个答案:

答案 0 :(得分:0)

cakephp helpers dateFormat会帮助你。

dateformat option将允许您配置日期部分。

答案 1 :(得分:0)

当您使用FormHelper并且departure_time字段上的数据类型为DATETIMETIME时,Cake将“自动”“正确”处理所有查找和保存操作。

因此,实际数据数组包含单独的hourminmeridian字段这一事实不会影响它在数据库中的存储方式,这将很好地转换为{ {1}}模型或控制器中不需要任何其他逻辑。如果要查找与此时间匹配的所有记录,只需使用完整时间戳即可找到它。使用类似的东西:

05:21:00

<强>更新

在回复您的评论时,如果您想立即使用插入的值,请将其转换为DateTime对象并格式化您的条件。例如:

$this->Rideoffer->find('all', array(
    'conditions' => array(
        'Rideoffer.departure_time' => '05:21:00'
    )
));

然后在查找中格式化日期:

$time =& $this->request->data['Rideoffer']['DepartureTime'];
$date = new DateTime($time['hour'] . ':' . $time['min'] . ' ' . $time['meridian']);