当前位置: 首页 > 知识库问答 >
问题:

如何实现laravel自定义碳时间戳?

孙财
2023-03-14

我想在我的表中为过期的“竞赛”设置一个未来的时间戳。我可以毫无问题地输入时间,除了当我检索输入时,它似乎不会返回一个碳实例,而只是一个带时间的字符串

public function store(ContestRequest $request)
{
    $input = Request::all();

    // Set the 'owner' attribute to the name of the currently logged in user(obviously requires login)
    $input['owner'] = Auth::user()->name;

    // Set the enddate according to the weeks that the user selected with the input select
    $weeks = Request::input('ends_at');

    // Add the weeks to the current time to set the future expiration date
    $input['ends_at'] = Carbon::now()->addWeeks($weeks);

    Contest::create($input);

    return redirect('contests');
}

这就是我用来创建新竞赛的内容,表中的时间格式与创建的和更新的字段完全相同。当我尝试以下方法时,它们似乎返回了一个碳实例:

$contest->created_at->diffForHumans()

为什么我没有得到一个碳实例返回?

我的迁移文件如下所示:

$table->timestamps();
$table->timestamp('ends_at');

共有2个答案

邵捷
2023-03-14

Laravel仅将其默认时间戳转换为Carbon(created_atmodified_at)。对于任何其他时间戳(例如您的ends_at列),您可以在Contest模型中定义属性访问器:

public function getEndsAtAttribute($value)
{
    return Carbon::createFromTimeStamp(strtotime($value));
}

这将转换从数据库返回的datetime字符串到一个Carbon实例,当您调用$参赛者-

宁良平
2023-03-14

您所要做的就是将它添加到模型中的$date属性中。

class Contest extends Model {
    protected $dates = ['ends_at'];
}

这告诉Laravel在处理更新的属性和在创建的属性时,处理结束的属性相同

@Jakobud您不必担心重写在处创建的和在处更新的。它们将与$dates数组合并:

public function getDates()
{
    $defaults = array(static::CREATED_AT, static::UPDATED_AT);
    return array_merge($this->dates, $defaults);
}

static::CREATED_AT解析为'CREATED_AT'static::UPDATED_AT解析为'UPDATED_AT'

 类似资料:
  • 我已经在中将时区配置为。 如果我执行,它返回我想要的。 到目前为止还不错! 当我做时,它返回例如16小时,而当前时间是17小时。有人能解释为什么不考虑夏令时吗? 我使用Laravel 7.16,PHP 7.4 当做 编辑1:代码图像时间|https://imgur.com/pfh6uij 编辑2:always done在我更改配置时清除所有缓存。 编辑3:created_at和updated_at

  • 我需要实现我的自定义DefaultComboxModel。这样做的原因是每次我打电话给 或者 或者 我看到它自动触发一个项目状态更改事件。这会导致一些随机项目自动从列表中选择。这不是我想要的,因为它用随机选择的项目填充可编辑的JTextField。 这是我在使用我的自定义Itemlistener中的Thread.dumpStack()进行调试时看到的stacktrace,它是我在调用上述方法时看到

  • 我正在使用Spring开发一个应用程序。在Access Control Access一节中,我想使用Spring Security Acl(我是Acl的新手)。我想在我的应用程序中实现ACL基于两点: 应用程序应该具有以下五种权限:、、、和。 权限是分层的,当用户具有权限时,它应该能够,或者当用户具有权限时,它应该能够、和等。 更新: 我的应用程序是基于Spring MVC RESTful的。当用

  • 本文向大家介绍Android自定义时间轴的实现过程,包括了Android自定义时间轴的实现过程的使用技巧和注意事项,需要的朋友参考一下 本文讲述Android自定义时间轴的实现过程,供大家参考,具体内容如下 相关视频链接: Android自定义控件系列 http://edu.csdn.net/course/detail/3719/65396 Android视频全系列 http://edu.csdn

  • 我有两个时间戳,一个是我创建的时间戳,另一个是我创建的时间戳(Laravel)。。。在数据库中,两者都有类型时间戳和默认值0000-00-00:00:00。。。但是 给出字符串。而是object/Carbon。这些时间戳有什么问题? 在使用格式('U')转换为整数后,我必须对两者进行比较。我只能在碳对象上调用此方法。我该怎么做?

  • 本文向大家介绍Laravel+Dingo/Api 自定义响应的实现,包括了Laravel+Dingo/Api 自定义响应的实现的使用技巧和注意事项,需要的朋友参考一下 在最近的开发开发项目中,我使用了Dingo/Api这个第三方Api库。 Dingo是个很强大的Api库, 但在开发的过程中,需要自定义响应字段。 刚开始使用Ding/Api时,返回如下: 这是输入字段验证错误时,Dingo返回的结果