标签: php-carbon

将碳日期转换为mysql时间戳.

我在mysql数据库中有一个timestamp变量列.试图将碳时间戳转换为我可以在那里输入的内容,但Carbon::now()只返回一个Carbon对象,当我尝试使用Carbon对象的时间戳字符串时,它不会在mysql中注册.

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);   
}
Run Code Online (Sandbox Code Playgroud)

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

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)  
Run Code Online (Sandbox Code Playgroud)

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

与"published_at"相关的mysql列是时间戳变量.我想如何从碳对象转换它?

提前致谢.

php mysql timestamp laravel php-carbon

14
推荐指数
3
解决办法
3万
查看次数

PHP碳检查选择日期是否大于其他日期

我已经开始将PHP Carbon用于我的应用程序,因为它似乎比使用和操作DateTime类的日期/时间容易得多.我想要做的是检查所选日期($ chosen_date)是否大于另一个日期($ whitelist_date).我在下面的代码中试过这个:

    $chosen_date = new Carbon($chosen_date);

    $whitelist_date = Carbon::now('Europe/London');
    $whitelist_date->addMinutes(10);

    echo "Chosen date must be after this date: ".$whitelist_date ."</br>";
    echo "Chosen Date: ".$chosen_date ."</br>";

    if ($chosen_date->gt($whitelist_date)) {

        echo "proceed"; 
    } else {
        echo "dont proceed";
    }
Run Code Online (Sandbox Code Playgroud)

原始的$ chosen_date值来自POST数据.这是我得到的输出:

Chosen date must be after this date: 2015-09-22 21:21:57
Chosen Date: 2015-09-22 21:01:00
proceed
Run Code Online (Sandbox Code Playgroud)

显然,所选日期不大于白名单日期,但仍然if语句返回true并且echo为"proceed".我一遍又一遍地对代码进行了检查,但我看不出哪里出错了.

php validation datetime php-carbon

14
推荐指数
1
解决办法
2万
查看次数

Laravel 4中的Carbon InvalidArgumentException - 找到意外数据.追踪数据

我正在尝试获取一个Eloquent查询结果,DB::raw("DATE_FORMAT(created_at, '%m-%d-%Y %r') AS created_at")但每次我从Carbon获得此异常时:

InvalidArgumentException
Unexpected data found. Trailing data
Run Code Online (Sandbox Code Playgroud)

如果我改为将其created_at改为使用MySQL的DATE_FORMAT()功能,那么它就可以毫无问题地获取数据.

我之前不仅没有问题就完成了这种日期格式化,但我检查了数据库表中的每个字段(这个种子只有10个),每个都是标准的有效日期,所以我想知道为什么Carbon正在投球合身.

在Laravel 4.1中运行它.

php mysql laravel-4 php-carbon

13
推荐指数
2
解决办法
2万
查看次数

存储时间戳,时间00:00:00

我想在时间组件中将时间戳存储在数据库中00:00:00.
以下代码:

$start_date = Carbon::createFromFormat('d-m-Y', $date_interval["start_date"]); 
$end_date = Carbon::createFromFormat('d-m-Y', $date_interval["end_date"]); 
Run Code Online (Sandbox Code Playgroud)

将当前时间添加到日期,当我仅提供没有时间规范的日期时.
我需要这个,因为我需要从数据库中检索内部整数,这应该是一天的开始.

存储这个"一天开始"的最佳方法是什么?

php mysql datetime php-carbon

13
推荐指数
2
解决办法
1万
查看次数

无法捕获Carbon抛出的Exception

以下代码抛出了一个异常,无论出于何种原因我都无法捕获.

try {
    $this->date = \Carbon\Carbon::parse($this->date)->toDateString();
}
catch (Exception $err) {
    $this->date = \Carbon\Carbon::parse("January 1st 1900")->toDateString();
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我将它放在函数闭包中的我的路径文件中,它可以正常工作.它只是在从模型中调用时抛出异常.

exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (Summer 2015) at position 0 (S): The timezone could not be found in the database' in /home/vagrant/www/steamcompare/vendor/nesbot/carbon/src/Carbon/Carbon.php:222

有没有其他人有碳这个问题?

php laravel php-carbon laravel-5

13
推荐指数
1
解决办法
5928
查看次数

用碳增加日期

我正在尝试为Laravel 4中的预订系统创建一系列的中断日期.我的数据库中有一个测试行,其start_date为2016-01-24,end_date为2016-01-29.

这是使用Carbon来增加行并循环使用Carbon增加一天并将其添加到数组的代码:

$reserved = Reservation::where('property_id', $property->id)->get();

$blackoutDays = [];

foreach($reserved as $r)
{
    $start = new \Carbon\Carbon($r->start_date);
    $end = new \Carbon\Carbon($r->end_date);
    $days = $start->diff($end)->days;

    for($i = 0; $i <= $days; $i++)
    {
        $date = '';
        $date = $start->addDays($i);

        $blackoutDays[] = $date->format('Y-m-j');
    }
}
Run Code Online (Sandbox Code Playgroud)

我想在$ blackoutDays中获得的是:

["2016-01-24","2016-01-25","2016-01-26","2016-01-27","2016-01-28","2016-01-29"]

但我实际得到的是:

["2016-01-24","2016-01-25","2016-01-27","2016-01-30","2016-02-3","2016-02-8"]

有谁知道为什么会发生这种情况/如何解决?有没有更好的方法呢?

php laravel-4 php-carbon

13
推荐指数
2
解决办法
3万
查看次数

用碳将小时转换为PM和AM

我有PHP的时间戳,所以我使用Carbon扩展来管理与日期,时间等相关的所有内容.现在我有一个小时23:0020:00这个扩展如何将其转换为AM和PM格式?

php laravel php-carbon

12
推荐指数
1
解决办法
2万
查看次数

创建日期 - Laravel中的碳

我开始阅读Carbon,似乎无法弄清楚如何创建一个carbon date.

在文档中说你可以;

Carbon::createFromDate($year, $month, $day, $tz); Carbon::createFromTime($hour, $minute, $second, $tz); Carbon::create($year, $month, $day, $hour, $minute, $second, $tz);

但是,如果我只是接受一个date喜欢2016-01-23怎么办?carbon在创建carbon日期之前,我是否需要去除每个部分并将其送入?或者我收到time喜欢的11:53:20

我正在处理动态日期和时间,并且编写代码以分开时间或日期的部分感觉不对.

任何帮助赞赏.

php laravel php-carbon laravel-5

12
推荐指数
1
解决办法
2万
查看次数

Laravel Collection日期比较

好吧所以我一直在寻找答案的时间,但似乎找不到答案.我有一系列"订单",所有日期都不同.我得到了本周的所有订单,这应该不是问题,然后我想要一周的每一天的标签.

到目前为止我尝试过的是:

$dinnerOrders->where('date','>',$date)->where('date','<', $date->endOfDay())->sortBy('created_at');
Run Code Online (Sandbox Code Playgroud)

$ date是:

$dt = Carbon\Carbon::create()->startOfWeek();
Carbon\Carbon::setTestNow($dt);
$date = new Carbon\Carbon('this ' . $day);
Run Code Online (Sandbox Code Playgroud)

并且$ dinnerOrders得到:

$dinnerOrders = collect([]);
foreach($restaurant->dinners as $dinner) {
    foreach($dinner->orders as $order) {
        $dinnerOrders[$order->id] = $order;
    }
 }
Run Code Online (Sandbox Code Playgroud)

日期似乎正确,它在sql中的单词.这是不行的,因为$ dinnerOrders是一个集合?

我得到的是什么都没有,即一个空集,尽管它在mysql终端中工作.

所以我要问的是,你可以对一个集合进行日期比较吗?如果是这样,怎么样?

php sql date laravel php-carbon

11
推荐指数
1
解决办法
1万
查看次数

Laravel Carbon获得当周的开始+结束

我正在与Laravel 4合作,在Facebook上发布/安排餐厅菜单.为此,我需要一个当前周的日期选择器,始终在星期一开始,并始终在星期日结束.

餐厅菜单的线框

我已经玩过http://carbon.nesbot.com/docs/#api-getters的例子但没有成功.

任何的想法?

php laravel laravel-4 php-carbon

11
推荐指数
4
解决办法
2万
查看次数

标签 统计

php ×10

php-carbon ×10

laravel ×6

laravel-4 ×3

mysql ×3

datetime ×2

laravel-5 ×2

date ×1

sql ×1

timestamp ×1

validation ×1