php - 将时间字符串存储到 Laravel 中的 TIME 列

标签 php mysql laravel time php-carbon

我使用时间选择器获取时间字符串(例如:“1:00am”或“12:00pm”)。我需要将其修改并存储在 mysql TIME 数据类型列中,例如:'12:00:00'。现在,由于 TIME 列以 24 小时格式存储,我需要“修改”它。我似乎找不到使用 Carbon 进行修改的任何帮助,因为我没有使用任何日期。我在 Laravel 中使用了一个 mutator,但想知道是否有更好的方法,比如对日期使用 Carbon

public function setTimeAttribute($time) {
    if(substr($time, -2, 0) == 'am') {
        // do nothing
    } else if(substr($time, -2, 0) == 'pm') {
        // increase hours.ie: 1:00pm to 13:00:00
    }
 }

任何帮助将不胜感激!谢谢。

最佳答案

使用 PHP strtotime() 函数。

$time = "12:00am";

$timestamp = strtotime($time);

echo $timestamp;

//Will print something like: 1469228400

或您喜欢的任何其他日期格式。

最好将时间存储为时间戳,要将其转换回来可以使用 date() 函数。 例如:$value = date("H:i:s", $timestamp);

关于php - 将时间字符串存储到 Laravel 中的 TIME 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38539839/

相关文章:

mysql - Spark SQL/Hive 查询永远伴随着 Join

php - Laravel Join 返回奇数值

php - 使用 Laravel 实现存储库模式

php - 如何在 Bright Local API 中获取评论

php - 创建 SQL 查询

MySQL Left Join + Where问题

laravel - Markdown 电子邮件中奇怪的表格标签

php - TCPDF 将 pdf 保存到/tmp/(或任何系统默认的临时文件)

php - 使用 PHP 删除空子文件夹

mysql - 将一年中的值复制到下一年的 SQL 命令