首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将碳排放日期转换为mysql时间戳。

将碳排放日期转换为mysql时间戳。
EN

Stack Overflow用户
提问于 2015-08-26 15:10:46
回答 3查看 49.1K关注 0票数 24

我在mysql数据库中有一个时间戳变量列。尝试将carbon时间戳转换为我可以在其中输入的内容,但Carbon::now()仅返回Carbon对象,并且当我尝试使用Carbon对象的时间戳字符串时,它没有在mysql中注册。

代码语言:javascript
复制
public function store(CreateArticleRequest $request){
        $input = $request->all(); 
        var_dump($input); // JUST SO YOU CAN SEE
        $input['published_at'] = Carbon::now(); 
        var_dump($input); // JUST SO YOU CAN SEE
        Article::create($input);   
}

我的第一个var转储是这样的:

代码语言:javascript
复制
array (size=4)
  '_token' => string 'Wy67a4hWxrnfiGz61wmXfYCSjAdldv26wOJiLWNc' (length=40)
  'title' => string 'ASDFasdf' (length=8)
  'body' => string 'asdfasdf' (length=8)
  'published_at' => string '2015-08-26' (length=10)  

我的第二个var转储是这样的。

与"published_at“相关的mysql列是一个时间戳变量。我该怎么把它从碳物体转换过来呢?

提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-26 15:50:39

也可以在模型上设置Mutator。

代码语言:javascript
复制
public function setPublishedAt($value)
{
    $this->attributes['published_at'] = strtotime($value);
}

转换为时间戳

代码语言:javascript
复制
$model -> setPublishedAt('2015-08-26'); // 1440572400

或者,您可以使用strtotime将日期转换为时间戳

Unix strtotime -将任何英文文本日期时间描述解析为

时间戳

希望这能有所帮助。

票数 -26
EN

Stack Overflow用户

发布于 2017-03-25 12:52:48

简而言之,toDateTimeString()就是您要找的东西:

代码语言:javascript
复制
$input['published_at'] = Carbon::now()->toDateTimeString();

有关更多选项,请参阅http://carbon.nesbot.com/docs/,如果您只需要日期部分而不是时间部分,请参阅toDateString()

但更好的处理方法是让Laravel为您将日期值转换为Carbon对象。参见https://laravel.com/docs/5.4/eloquent-mutators#date-mutators

票数 64
EN

Stack Overflow用户

发布于 2015-08-26 15:44:56

问题出在您的日期字符串中,例如,您具有以下内容:

代码语言:javascript
复制
public function setCrbDateAttribute($value)
{
     $this->attributes['crb_date'] = \Carbon\Carbon::createFromFormat('d-m-Y h:i', $value);
}

现在,如果存在类似于10-12-2014的日期,则会出现此错误,因为缺少小时和分钟。因此,您要确保日期包含所有语法分析,并确保日期字符串包含-作为分隔符,而不是/。

换句话说,在使用Carbon之前,请检查$value,并确保日期字符串包含的格式化字符串与方法中使用的完全相同。

这也会发生在访问器方法中,因此在Carbon::createFromFormat().中使用日期值之前,请先检查日期值

如果您从用户输入中获取日期,然后在使用日期或date_format:format规则之前验证日期,请在此处检查验证。

答案参考:

Laravel/Carbon Timestamp 0000-00-00 00:00:00 or Unexpected data found. Unexpected data found. Data missing

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32220091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档