【问题标题】:Convert String to Carbon将字符串转换为碳
【发布时间】:2015-12-09 12:50:35
【问题描述】:

我正在使用 Laravel 5.1

几天前,我在模型中使用protected $dates = ['license_expire'] 将字符串日期转换为 Carbon 实例。在 HTML 中,日期的创建表单中的默认值为 Carbon\Carbon::now()->format('Y-m-d')

为了在主页显示警报,我使用了<p>Licence Expired: <b>{{ $employee->license_expire < Carbon\Carbon::now()?'License has expired':$employee->license_expire->diffForHumans() }}</b></p>

到那时 diffForHumans() 方法工作正常。

但在这种情况下,无论数据库中有什么,编辑表单的默认值也是今天的日期(我使用的是部分表单)。为了解决它,我将 HTML 中的默认值更改为 NUll。并在我的模型中添加另一个方法以在创建表单中显示当前日期。

public function getLicenseExpireAttribute($date)
{
    return Carbon::parse($date)->format('Y-m-d');
}

之后,当我转到主页时,我有一个FatalErrorException,上面写着Call to a member function diffForHumans() on string

当我用dd($employee->license_expire) 检查日期时,它又变成了STRING。

谁能告诉我在这种情况下如何将字符串转换为 Carbon?

将我创建表单的默认日期设置为今天的日期,从数据库中编辑表单的日期,我可以使用 diffForHumans() 在主页中显示警报?

【问题讨论】:

    标签: php date laravel-5.1 php-carbon


    【解决方案1】:

    你快到了。

    删除protected $dates = ['license_expire']

    然后将您的 LicenseExpire 访问器更改为:

    public function getLicenseExpireAttribute($date)
    {
        return Carbon::parse($date);
    }
    

    这样,无论如何它都会返回一个Carbon 实例。 因此,对于您的表单,您只需使用 $employee->license_expire->format('Y-m-d')(或所需的任何格式),diffForHumans() 也应该在您的主页上工作。

    希望这会有所帮助!

    【讨论】:

    • 是的!它有帮助。我完全按照你说的做了。它可以按我的意愿完美运行。
    【解决方案2】:

    试试这个

    $date = Carbon::parse(date_format($youttimestring,'d/m/Y H:i:s'));
    echo $date;
    

    【讨论】:

      【解决方案3】:

      为什么不尝试使用以下内容:

      $dateTimeString = $aDateString." ".$aTimeString;
      $dueDateTime = Carbon::createFromFormat('Y-m-d H:i:s', $dateTimeString, 'Europe/London');   
      

      【讨论】:

        【解决方案4】:

        $filter['dateOfService']='06.2021';

        $d1 = Carbon::createFromFormat('m.Y', $filter['dateOfService'], 'Europe/Warsaw')->format('m.Y');
        

        【讨论】:

          猜你喜欢
          • 2018-11-14
          • 2019-10-10
          • 2019-01-05
          • 2017-07-01
          • 2015-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多