mysql - 将 12 小时制时间格式转换为 24 小时制,如 mysql

标签 mysql cakephp time

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

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

它返回:

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

)

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

最佳答案

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

因此,实际数据数组包含单独的 hourminmeridian 字段这一事实不会影响它的存储方式数据库,这将很好地转换为 05:21:00,而您的模型或 Controller 中不需要任何额外的逻辑。如果你想找到所有匹配这个时间的记录,你可以简单地用完整的时间戳来找到它。使用类似的东西:

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

更新

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

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

然后格式化你找到的日期:

$this->Rideoffer->find('all', array(
    'conditions' => array(
        'Rideoffer.departure_time' => $date->format('H:i:s')
    )
));

关于mysql - 将 12 小时制时间格式转换为 24 小时制,如 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14930801/

相关文章:

Python Mysql 在不同的表上选择相同的值

php - 插入到数据库

MYSQL 组函数使用无效 如何解决?

time - 如何在 Rust 中对程序进行基准测试?

swift - 在 Swift 中计算多个单位的时间段

time - Go 的时间到底有多精确?

php - 在 jquery 中使用 #urls

php - cakephp 中 webroot 中的 css 文件并与 html 链接

cakephp - 如何安装 Miles J 的 cakephp 论坛插件?

php - CakePHP - 递归模型中的特定字段?