Сохранение временных строк в столбце TIME в Laravel

Я использую средство выбора времени, чтобы получить строку времени (например, «1:00 утра» или «12:00 вечера»). Мне нужно изменить и сохранить это в столбце типа данных mysql TIME, например: '12: 00: 00 '. Теперь, поскольку столбец ВРЕМЯ хранит в 24-часовом формате, мне нужно "изменить" его. Кажется, я не могу найти никакой помощи в изменении с помощью Carbon, так как я не использую даты. Я использую мутатор в Laravel, но хотел бы знать, есть ли лучший способ, например, использовать Углерод для дат.

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
    }
 }

Любая помощь будет оценена по достоинству! Спасибо.


person donnyjeremiah    schedule 23.07.2016    source источник


Ответы (1)


Используйте функцию PHP strtotime().

$time = "12:00am";

$timestamp = strtotime($time);

echo $timestamp;

//Will print something like: 1469228400

Или любой другой формат даты, который вы предпочитаете.

Лучше всего хранить время как временную метку, чтобы преобразовать его обратно, вы можете использовать функцию date (). Например: $value = date("H:i:s", $timestamp);

person Michel    schedule 23.07.2016