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

时间:2016-07-23 08:37:29

标签: php mysql laravel time php-carbon

我使用时间戳来获取时间字符串(例如:'上午1:00'或者' 12:00 pm')。我需要修改并将其存储在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
    }
 }

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

1 个答案:

答案 0 :(得分:2)

使用PHP strtotime()函数。

$time = "12:00am";

$timestamp = strtotime($time);

echo $timestamp;

//Will print something like: 1469228400

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

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