我有一个字符串格式的日期“Mon, 13 Feb 2017 09:30:00 GMT”。我正在尝试将其转换为 Carbon 时间戳,但我无法管理如何操作。我如何使用 GMT?正确的方法是什么?
$date = 'Mon, 13 Feb 2017 09:30:00 GMT';
Carbon::createFromFormat('D, d m Y H:i:s', $date)->toDateTimeString());
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Carbon 从 Laravel 5.3 中的 UTC 偏移量获取时区名称。下面列出的代码任何帮助将不胜感激。
/* current code iteration */
$utcOffset = -5;
$timezone = Carbon::now($utcOffset)->timezone->getName();
echo $timezone;
// Result: -05:00
// Expected Result: EST
/* tried code */
$timezone = Carbon::now($utcOffset)->tzName;
// Result: -05:00
/* What I used prior to Carbon */
$timezone = timezone_name_from_abbr(null, $utcOffset * 3600, TRUE);
$dateTime = new DateTime();
$dateTime->setTimeZone(new DateTimeZone($timezone));
$timezone = $dateTime->format('T');'
Run Code Online (Sandbox Code Playgroud)
我缺少什么?我感觉很傻..
我正在Laravel 应用程序中使用 php Carbon包来操作我的日期。我在尝试生成日期(未来 x 天)时遇到一些奇怪的结果
请看一下这段代码:
$start_date = Carbon::tomorrow('Europe/London');
$end_date = $start_date->addDays($tier->duration_days);
Log::debug('Carbon::now(): '.Carbon::now());
Log::debug('Carbon::tomorrow(Europe/London): '.Carbon::tomorrow('Europe/London'));
Log::debug('$start_date: '.$start_date);
Log::debug('$end_date: '.$end_date);
Run Code Online (Sandbox Code Playgroud)
上面的代码将打印出以下调试行:
2017-04-17 21:46:31] local.DEBUG:Carbon::now():2017-04-17 21:46:31
[2017-04-17 21:46:31] local.DEBUG:Carbon: :明天(欧洲/伦敦):2017-04-18 00:00:00 [2017-04-17 21:46:31] local.DEBUG:$start_date:2017-05-16 00:00:00 [2017- 04-17 21:46:31] local.DEBUG: $end_date: 2017-05-16 00:00:00
使用 Carbon::tomorrow() 将打印出正确的日期,但是使用技术上使用相同函数的 $start_time 返回错误的日期。有人可以建议这里可能出了什么问题吗?
仅供参考,我已在文件中将欧洲/伦敦设置为时区config/app.php。
从文档中我看到:
echo $dt->toDateTimeString(); // 1975-12-25 14:15:16
Run Code Online (Sandbox Code Playgroud)
但实际上,如果我转储我的执行,我会得到:
$now = Carbon::now()->toDayDateTimeString();
dump($now); //Mon, Oct 2, 2017 12:49 PM
Run Code Online (Sandbox Code Playgroud)
我需要 :
$now = Carbon::now()->format('Y-m-d H:i:s');
Run Code Online (Sandbox Code Playgroud)
为了得到 :
dump($now); //2017-10-02 12:49:06
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
所以我有一个约会,可以这么说720402。格式为年(72)月(04)日(02)。我希望能够从这个带有碳的字符串中输出年龄。而Carbon有这个年龄函数
$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;但我无法将当前格式转换为正确的格式以供碳使用。
我有以下 Iso8601 日期时间字符串2018-03-12T10:34:15-0200,在我解析它之后
Carbon::parse("2018-03-21T10:34:15-0200", 'UTC')
Run Code Online (Sandbox Code Playgroud)
并将其保存到datetime我拥有的mysql db列中,2018-03-21 10:34:15因此我失去了-0200与 UTC 时区的小时差异。
任何想法如何以正确的方式解决它?
我正在从 javascript Date() 函数生成并发送完整的日期字符串,该函数返回完整的字符串日期格式,如下所示:
Sun Jan 01 2017 00:00:00 GMT+0100 (Central European Standard Time)
Run Code Online (Sandbox Code Playgroud)
Carbon 解析器不会接受这种格式来在服务器端创建相同的日期。这不起作用:
$date = Carbon::parse('Sun Jan 01 2017 00:00:00 GMT+0100 (Central European Standard Time)');
Run Code Online (Sandbox Code Playgroud)
错误 无法解析时间字符串(Sun Jan 01 2017 00:00:00 GMT+0100(中欧标准时间))在位置 41 (l):双时区规范
如果我删除(Central European Standard Time)作品:
$date = Carbon::parse('Sun Jan 01 2017 00:00:00 GMT+0100');
Run Code Online (Sandbox Code Playgroud)
然后它正确地创建日期。
JS 默认 Date() 可以以某种方式在 Carbon 中使用,还是我必须在将日期发送到 Carbon 之前格式化它?
在 laravel 5.6 中使用 Carbon。
我想编写一个代码,为我提供当前日期中下一次出现的日期。
例如给出下一个 5 月 31 日的日期
场景 1:
输入:$currentDate = '01-30-2019'; // MM-DD-YYYY 格式
预期输出:$next31May = '05-31-2019';
场景 2:
输入:$currentDate = '07-04-2019'; // MM-DD-YYYY 格式
预期输出:$next31May = '05-31-2020';
更新:
我尝试了下面的代码但不满足
<?php
public function nextOccurance()
{
$now = Carbon::now();
$month= $now->month;
$year = $now->year;
if($month > 6)
{
echo Carbon::createMidnightDate($year+1, 5, 31);
}
else
{
echo Carbon::createMidnightDate(null, 5, 31);
}
exit();
}
?>
Run Code Online (Sandbox Code Playgroud)
先感谢您。
我正在使用 Laravel 5.8。
我在文件/var/www/html/admin/vendor/nesbot/carbon/src/Carbon/Traits/Units.php中 遇到异常
// @call addRealUnit
case 'minute':
$value *= static::SECONDS_PER_MINUTE;
break;
Run Code Online (Sandbox Code Playgroud)
我正在使用 AWS 服务器。
我正在尝试运行,composer update但出现此错误:
[Composer\Downloader\TransportException]无法下载
“ https://repo.packagist.org/packages.json ”文件:无法打开
流:连接超时
在我的 Laravel 6 应用程序中,我已按预期Carbon::now()->locale()返回。it
作为已加载语言环境的确认,Carbon::now()->monthName正确输出febbraio.
但是Carbon::now()->format('F')两者Carbon::now()->formatLocalized('%B')都返回英文版本February。
为什么第一个函数输出正确的本地化月份,而其他函数则不输出?
php ×10
php-carbon ×10
laravel ×5
datetime ×3
date ×2
composer-php ×1
iso8601 ×1
javascript ×1
laravel-5.8 ×1
locale ×1
mysql ×1
server ×1
timestamp ×1
utc ×1