在 Blade 视图中,我有这个代码
{{ \Carbon\Carbon::setLocale("es") }}
{{ $registro->fecha_desde->format("l j F Y") }}<br />
{{ $registro->fecha_desde->formatLocalized("%A %d %B %Y") }}<br />
{{ $registro->fecha_desde->diffForHumans() }}
这不起作用,它返回:
Friday 30 December 2016
Friday 30 December 2016
dentro de 1 semana
Run Code Online (Sandbox Code Playgroud)
因此, format() 和 formatLocalized 总是以英文格式返回日期。diffForHumans 返回本地化的日期(在本例中为西班牙语)。
我错过了什么吗?不敢相信“Carbon's formatLocalized”没有返回本地化的格式化日期......
我有一个表,通过日期选择器以日期格式存储数据。在存储日期时我正在做这样的事情:
$data['schedule'] = Carbon::parse($request->schedule)->toDateTimeString();
Run Code Online (Sandbox Code Playgroud)
然后在模型中我定义如下:
protected $dates = [
'schedule', 'created_at', 'updated_at', 'deleted_at'
];
Run Code Online (Sandbox Code Playgroud)
现在,在检索日期时,我正在使用diffForHumans()如下内容:
$event->schedule = $event->schedule->diffForHumans();
Run Code Online (Sandbox Code Playgroud)
但它抛出这样的错误:
找不到两位数的月份。数据缺失
我检查了 mySQL 数据库的格式,我的日期如下:
2017-07-02 14:38:23
Run Code Online (Sandbox Code Playgroud)
编辑:
之前我在将日期存储在表格中时遇到问题,请参阅如何在 laravel 中通过 Vuejs Datepicker 格式化接收日期以获取详细说明。它抛出错误:
日期时间格式无效:1292 日期时间值不正确:第 1 行“计划”列的“2017-05-04T18:30:00.000Z”
所以我选择将其存储在数据库中时使用Carbon::parse。
怎么解决这个问题,帮帮我吧。
谢谢。
Carbon 可以返回给定年份的天数吗?
$dt = Carbon::parse($year . '-'. 1 .'-' . $from);
var_dump($dt->format('z') + 1 );
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用
我正在尝试用荷兰语显示当前月份的完整名称。我试过这样:
\Carbon\Carbon::now()->subMonth()->format('F')
Run Code Online (Sandbox Code Playgroud)
但后来我看到的July不是我想要的。我的应用服务提供者如下所示:
public function boot()
{
Carbon::setLocale('nl');
}
Run Code Online (Sandbox Code Playgroud)
知道我能做些什么来让它发挥作用吗?
(diffForHumans 工作正常)
我正在尝试使用 Carbon 检索自过去特定日期以来的所有星期一和星期二以及每个月的最后一个星期日。然后我想遍历天数数组并为那一天创建一个偶数。我想弄清楚如何做到这一点?
// Get all dates of Mondays, Tuesdays, last Sundays of every Month since the first Monday of January of 2000.
$eventDates = Carbon::parse('first Monday of January 2000');
$i = 0;
while($eventDates->lt(Carbon::now()->subDay(14))) {
$event = factory(Event::class)->create([
'date' => $eventDate,
]);
}
Run Code Online (Sandbox Code Playgroud) Carbon我对HTML5 输入有问题input[type=datetime-local],因为此输入以格式Y-m-d\TH:i(例如2016-11-20T11:45)发送数据时间。
我的控制器中有方法:
public function store(ModelStoreFormRequest $request)
{
$model = new Model($request->all());
$model->save();
return redirect->action(/*...*/);
}
Run Code Online (Sandbox Code Playgroud)
我得到例外:
InvalidArgumentException in Carbon.php line 582: Data Missing
1. in Carbon.php line 582
2. at Carbon::createFromFormat('Y-m-d H:i:s', '2016-11-20T11:45') in HasAttributes.php line 709
Run Code Online (Sandbox Code Playgroud)
所以我通过在模型中创建下一个函数解决了这个问题:
public function setStartedAtAttribute($startedAt)
{
if( $startedAt instanceof Carbon ) {
$this->attributes['started_at'] = $startedAt;
return;
}
if( strpos($startedAt, 'T' ) ) {
$this->attributes['started_at'] = Carbon::createFromFormat('Y-m-d\TH:i', $startedAt);
return;
}
$this->attributes['started_at'] = Carbon::createFromFormat('Y-m-d H:i:s', $startedAt);
}
Run Code Online (Sandbox Code Playgroud)
但我不喜欢这个解决方案,不知道是否有更优雅的解决方案?我正在考虑使用 …
我如何比较这两个之间的时间?
$today = Carbon::now(new \DateTimeZone('Asia/Jakarta'))->toDateTimeString();
Run Code Online (Sandbox Code Playgroud)
和
$last = EmergencyOrder::select('CreatedDate')
->orderBy('CreatedDate', 'desc')
->first();
Run Code Online (Sandbox Code Playgroud) 我有一个格式为“ Ymd H:i:s ”的日期时间字符串,日期时间值为“ 2018-01-30 07:11:21 ”。
$carbon_obj = Carbon::createFromFormat('Y-m-d H:i:s' , '2018-01-30 07:11:21','America/Chicago');
Run Code Online (Sandbox Code Playgroud)
它如何从这个 carbon 对象中获取 Unix 时间戳?
当我们传递这样一个2019-01-01没有时间的日期值时10:00:00,时间默认为00:00:00. 所以最后 db 兼容值被转换成这个:2019-01-01 00:00:00。我怎样才能强制默认它23:59:00呢?
示例:我需要设置一个expiry_date属性,但如果我只接受2019-01-08用户输入的日期,用户将假设他们将一整天作为到期日期,而实际上它会在第一秒到期,2019-01-08因为的隐式默认时间00:00:00。
我如何克服这个问题?我怎样才能设置一个mutator来expiry_date把它2019-01-01 00:00:00变成这个2019-01-01 23:59:00?
我正在使用日期时间输入字段
<input type="datetime-local">
Run Code Online (Sandbox Code Playgroud)
它返回一个格式化的日期时间 yyyy-MM-ddThh:mm
现在我想将此格式转换为Y-m-d H:i使用php-carbon包。
我试过了
\Carbon\Carbon::createFromFormat(
'yyyy-MM-ddTh:mm', $this->start_date
)->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)
但它失败了。
php-carbon ×10
php ×9
laravel ×7
datetime ×3
laravel-5 ×3
compare ×1
date ×1
html ×1
laravel-5.3 ×1
laravel-5.4 ×1
timezone ×1