我正在基于最新版本的Lumen构建Web服务,以与Guzzle 6客户端一起使用。Web服务正在运行,但是当我在客户端上通过以下方式获得碳日期时:
$newsitem->publish_start->formatLocalized('%A %d %B %Y')
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Call to a member function formatLocalized() on a non-object
Run Code Online (Sandbox Code Playgroud)
在我的网络服务“新闻”模型部分中,我有:
protected $dates = [
'publish_start',
'publish_end'
];
Run Code Online (Sandbox Code Playgroud)
如果我删除这些并访问日期
date('Y/m', strtotime($newsitem->publish_start))
Run Code Online (Sandbox Code Playgroud)
一切正常。
我在这里想念什么?如何通过Web服务获取Carbon日期?我必须在流明上手动激活Carbon吗?
我环顾四周,但找不到以特定格式返回 Laravel 时间戳/日期时间的明确方法。它是如何保存在数据库中的对我来说并不重要,但是当我提取数据时,我想对其进行格式化,以便它可以被 JavaScript 解析。有人知道一种不需要创建多个访问器的好方法吗?
编辑:要添加更多细节,我实际上使用的是 AngularJS,并希望以某种格式返回日期,以便 Angular 及其日期过滤器可以理解它。使用当前格式,日期过滤器不起作用,因为它无法解析日期,据我所知。
我正在使用此代码:
Carbon\Carbon::parse($quotation[0]->created_at)->format('d M Y')
Run Code Online (Sandbox Code Playgroud)
输出结果为:2016年3月10日
我想要:2016年3月10日
我查看了Carbon文档并用Google搜索了高低,我无法在任何地方找到它.
任何人 ??
当我的MySQl日期为空时,PHP将它们返回为"-0001-11-30 00:00:00".
我知道这是因为我正在使用欧洲时区,但我该如何处理呢?
我一直在:
InvalidArgumentException in Carbon.php line 425:
Unexpected data found.
in Carbon.php line 425
at Carbon::createFromFormat('Y-m-d H:i:s', '-0001-11-30 00:00:00') in Model.php line 2915
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
米克
注意:这不同于: 你如何解释新的\ DateTime('0000-00-0000:00 00:00')的结果?
这是不同的,因为我问我应该怎么做.
这里有个奇怪的问题。
我正在使用Laravel,但我可以确定它本身与它无关,并且我的Carbon日期总是返回“星期一”作为一周的第一天。问题是,我所在的语言环境应返回“星期日”。
/*
|--------------------------------------------------------------------------
| Application Timezone
|--------------------------------------------------------------------------
|
| Here you may specify the default timezone for your application, which
| will be used by the PHP date and date-time functions. We have gone
| ahead and set this to a sensible default for you out of the box.
|
*/
'timezone' => 'America/Montreal',
Run Code Online (Sandbox Code Playgroud)
创建一个碳日期并打印:
<?php
$date = Carbon::now();
var_dump($date);
Run Code Online (Sandbox Code Playgroud)
产出
object(Carbon\Carbon)[278]
public 'date' => string '2016-06-22 06:05:18.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'America/Montreal' …Run Code Online (Sandbox Code Playgroud) Carbon提供函数weekOfYear以将一年中的星期作为整数.但是,我需要反过来根据年份+一周的时间来获取日期.
Carbon::now()->weekOfYear(); // todays week of the year
Run Code Online (Sandbox Code Playgroud)
例如
因此,我需要这周的开始和结束日期.但是我在Carbon文档中找不到合适的函数
我想显示使用日期的天数和小时数Carbon,目前我得到的代码如下.
Carbon::parse("2017-03-07 17:46:50")->diffForHumans()
Run Code Online (Sandbox Code Playgroud)
它输出:
从现在起6天
我希望它输出这样的东西:
从现在起6天12小时
我怎样才能做到这一点?
我正在使用Carbon计算两个日期之间的时间。我希望能够取两个日期之间的时差,并以十进制格式确定时间,以便能够计算小时费率。根据我的测试,-> diffInHours()调用给了我两个数字之间的小时数。
例如
$actual_start_at = Carbon::parse('2017-05-01 13:00:00');
$actual_end_at = Carbon::parse('2017-05-01 15:15:00');
return $actual_end_at->diffInHours($actual_start_at, true);
Run Code Online (Sandbox Code Playgroud)
退货
2
Run Code Online (Sandbox Code Playgroud)
我想要一些可以返回的东西 2 hours 15 minutes
2.25
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取上个月的所有记录,到目前为止,我设法从上个月获取了所有记录,但是到目前为止,我不确定如何只获取上个月的记录
$revenueMonth = Callback::where('created_at', '>=', Carbon::today()->startOfMonth()->subMonth())->sum('payment');
Run Code Online (Sandbox Code Playgroud) 我有一个很简单的问题..我用的是Carbon::parse($date)带功能$date = '15.15.2015'。当然,由于没有第15个月,它不能返回有效的字符串。但是我如何“忽略”错误消息?太棒了
if (Carbon::parse($date) != error) Carbon::parse($date);
else echo 'invalid date, enduser understands the error message';
Run Code Online (Sandbox Code Playgroud) php-carbon ×10
php ×8
laravel ×4
date ×2
laravel-5.1 ×2
mysql ×2
datetime ×1
diff ×1
eloquent ×1
exception ×1
homestead ×1
javascript ×1
laravel-5 ×1
lumen ×1
timezone ×1