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

don*_*iah 5 php mysql time laravel 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
    }
 }
Run Code Online (Sandbox Code Playgroud)

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

小智 5

使用 PHPstrtotime()函数。

$time = "12:00am";

$timestamp = strtotime($time);

echo $timestamp;

//Will print something like: 1469228400
Run Code Online (Sandbox Code Playgroud)

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

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