laravel - 如何修复:Carbon 无法转换为 int
问题描述
我有一个函数可以在开始日期之前获得剩余的天数。我在我的模型中使用 Carbon 来处理这个问题,如下所示:
public function getDaysRemainingForFirstPaymentAttribute()
{
if (Carbon::createFromTimestamp($this->trip_start_date)->subDays(150) >= (Carbon::now())) {
return 'Due on'. ' ' .Carbon::parse($this->trip_start_date)->subDays(150)
->format('m-d-Y').' | '.Carbon::now()
->diffInDays(Carbon::create($this->trip_start_date)
->subDays(150), false) . ' ' . 'days';
} else {
return 'Due Now';
}
}
//IN MY IF, I have tried:
//if (Carbon::create(...
//if (Carbon::parse(...
当我死转储时,$this->trip_start_date
我得到以下日期:
Illuminate\Support\Carbon @1582347600 {#1006 ▼
date: 2020-02-22 00:00:00.0 America/New_York (-05:00)
}
然后我的错误是:
碳无法转换为 int
解决方案
您已经拥有$this->trip_start_date
Carbon 实例,无需使用Carbon::createFromTimestamp
:
if ($this->trip_start_date->subDays(150) >= Carbon::now()) {
return 'Due on'. ' ' .$this->trip_start_date->subDays(150)
->format('m-d-Y').' | '.Carbon::now()
->diffInDays($this->trip_start_date
->subDays(150), false) . ' ' . 'days';
}
您还可以使用碳比较函数:
if ($this->trip_start_date->subDays(150)->gte(Carbon::now())) {
return sprintf("Due on %s | %s days",
$this->trip_start_date->subDays(150)->format('m-d-Y'),
Carbon::now()->diffInDays($this->trip_start_date->subDays(150), false)
);
}
推荐阅读
- javascript - 这个函数和条件语句输出有什么问题?
- h3 - 如何在 JS 中来回将 H3 ID 从十六进制转换为整数
- windows - 替换文件资源管理器/拦截文件资源管理器的打开
- css - Gulp 乱序编译 sass
- php - 如何在 php 中抓取 web 表格时从 td 标签中跳过 div 类?
- identityserver4 - 在 Identity Server 4 中,如何读取保存在数据库中的加密刷新令牌(字符串)以获取访问令牌?
- python-3.x - 使用 while 循环生成随机值:随机值重复自身
- clojure - Clojure 规范:直接检查地图值?
- pm2 - 在 Digital Ocean 上使用 pm2 启动多个 Nuxtjs 项目
- reactjs - Material UI:如何提取文本字段的值