首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将12小时制时间格式转换为24小时制,与mysql相同

问将12小时制时间格式转换为24小时制,与mysql相同
EN

Stack Overflow用户
提问于 2013-02-18 14:41:36
回答 2查看 1.4K关注 0票数 1

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

代码语言:javascript
复制
$this->request->data['Rideoffer']['DepartureTime']

它返回:

代码语言:javascript
复制
array(
'hour' => '05',
'min' => '21',
'meridian' => 'am'

)

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-18 16:16:17

当您使用FormHelper,并且您在departure_time字段上的数据类型是DATETIME或TIME时,它将“自动”正确地处理所有查找和保存操作。

因此,实际数据数组包含单独的hour、min和meridian字段的事实不会影响它在数据库中的存储方式,这将很好地转换为05:21:00,而不需要在模型或控制器中添加任何额外的逻辑。如果您想要查找这次匹配的所有记录,您可以简单地查找带有完整时间戳的记录。使用像这样的东西:

代码语言:javascript
复制
$this->Rideoffer->find('all', array(
    'conditions' => array(
        'Rideoffer.departure_time' => '05:21:00'
    )
));

更新

在回复您的注释时,如果您希望立即使用插入的值,请将其转换为DateTime对象并根据您的条件对其进行格式化。例如:

代码语言:javascript
复制
$time =& $this->request->data['Rideoffer']['DepartureTime'];
$date = new DateTime($time['hour'] . ':' . $time['min'] . ' ' . $time['meridian']);

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

代码语言:javascript
复制
$this->Rideoffer->find('all', array(
    'conditions' => array(
        'Rideoffer.departure_time' => $date->format('H:i:s')
    )
));
票数 0
EN

Stack Overflow用户

发布于 2013-02-18 15:48:19

cakephp helpers 将会帮助你。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14930801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档