2017-07-03 19:04:27 +02:00
# Carbon
2020-01-17 10:58:01 +01:00
[](https://packagist.org/packages/nesbot/carbon)
[](https://packagist.org/packages/nesbot/carbon)
[](https://travis-ci.org/briannesbitt/Carbon)
[](https://styleci.io/repos/5724990)
[](https://codecov.io/github/briannesbitt/Carbon?branch=master)
[](https://github.com/phpstan/phpstan)
[](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon& utm_medium=referral& utm_campaign=readme)
2017-07-03 19:04:27 +02:00
2020-01-17 10:58:01 +01:00
An international PHP extension for DateTime. [http://carbon.nesbot.com ](http://carbon.nesbot.com )
2017-07-03 19:04:27 +02:00
```php
use Carbon\Carbon;
printf("Right now is %s", Carbon::now()->toDateTimeString());
printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); //implicit __toString()
$tomorrow = Carbon::now()->addDay();
$lastWeek = Carbon::now()->subWeek();
2018-08-07 10:42:11 +02:00
$nextSummerOlympics = Carbon::createFromDate(2016)->addYears(4);
2017-07-03 19:04:27 +02:00
$officialDate = Carbon::now()->toRfc2822String();
$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;
$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');
2018-08-07 10:42:11 +02:00
$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');
2017-07-03 19:04:27 +02:00
2018-08-07 10:42:11 +02:00
// Don't really want this to happen so mock now
2017-07-03 19:04:27 +02:00
Carbon::setTestNow(Carbon::createFromDate(2000, 1, 1));
// comparisons are always done in UTC
2018-08-07 10:42:11 +02:00
if (Carbon::now()->gte($internetWillBlowUpOn)) {
2017-07-03 19:04:27 +02:00
die();
}
// Phew! Return to normal behaviour
Carbon::setTestNow();
if (Carbon::now()->isWeekend()) {
echo 'Party!';
}
2020-01-17 10:58:01 +01:00
// Over 200 languages (and over 500 regional variants) supported:
2017-07-03 19:04:27 +02:00
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'
2020-01-17 10:58:01 +01:00
echo Carbon::now()->subMinutes(2)->locale('zh_CN')->diffForHumans(); // '2分钟前'
echo Carbon::parse('2019-07-23 14:51')->isoFormat('LLLL'); // 'Tuesday, July 23, 2019 2:51 PM'
echo Carbon::parse('2019-07-23 14:51')->locale('fr_FR')->isoFormat('LLLL'); // 'mardi 23 juillet 2019 14:51'
2017-07-03 19:04:27 +02:00
// ... but also does 'from now', 'after' and 'before'
// rolling up to seconds, minutes, hours, days, months, years
$daysSinceEpoch = Carbon::createFromTimestamp(0)->diffInDays();
```
2020-01-17 10:58:01 +01:00
[Get supported nesbot/carbon with the Tidelift Subscription ](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme )
2017-07-03 19:04:27 +02:00
## Installation
### With Composer
```
$ composer require nesbot/carbon
```
```json
{
"require": {
2020-01-17 10:58:01 +01:00
"nesbot/carbon": "^2.16"
2017-07-03 19:04:27 +02:00
}
}
```
```php
< ?php
require 'vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
```
< a name = "install-nocomposer" / >
2018-08-07 10:42:11 +02:00
2017-07-03 19:04:27 +02:00
### Without Composer
2020-01-17 10:58:01 +01:00
Why are you not using [composer ](http://getcomposer.org/ )? Download the Carbon [latest release ](https://github.com/briannesbitt/Carbon/releases ) and put the contents of the ZIP archive into a directory in your project. Then require the file `autoload.php` to get all classes and dependencies loaded on need.
2017-07-03 19:04:27 +02:00
```php
< ?php
2020-01-17 10:58:01 +01:00
require 'path-to-Carbon-directory/autoload.php';
2017-07-03 19:04:27 +02:00
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
```
## Docs
2018-08-07 10:42:11 +02:00
[http://carbon.nesbot.com/docs ](http://carbon.nesbot.com/docs )
2020-01-17 10:58:01 +01:00
## Security contact information
To report a security vulnerability, please use the
[Tidelift security contact ](https://tidelift.com/security ).
Tidelift will coordinate the fix and disclosure.
## Credits
### Contributors
This project exists thanks to all the people who contribute.
< a href = "https://github.com/briannesbitt/Carbon/graphs/contributors" target = "_blank" > < img src = "https://opencollective.com/Carbon/contributors.svg?width=890&button=false" / > < / a >
### Translators
[Thanks to people helping us to translate Carbon in so many languages ](https://carbon.nesbot.com/contribute/translators/ )
### Backers
Thank you to all our backers! 🙏 [[Become a backer ](https://opencollective.com/Carbon#backer )]
< a href = "https://opencollective.com/Carbon #backers " target = "_blank" >< img src = "https://opencollective.com/Carbon/backers.svg?width=890" ></ a >
### Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor ](https://opencollective.com/Carbon#sponsor )]
< a href = "https://opencollective.com/Carbon/sponsor/0/website" target = "_blank" > < img src = "https://opencollective.com/Carbon/sponsor/0/avatar.svg" > < / a >
< a href = "https://opencollective.com/Carbon/sponsor/1/website" target = "_blank" > < img src = "https://opencollective.com/Carbon/sponsor/1/avatar.svg" > < / a >
< a href = "https://opencollective.com/Carbon/sponsor/2/website" target = "_blank" > < img src = "https://opencollective.com/Carbon/sponsor/2/avatar.svg" > < / a >
< a href = "https://opencollective.com/Carbon/sponsor/3/website" target = "_blank" > < img src = "https://opencollective.com/Carbon/sponsor/3/avatar.svg" > < / a >
< a href = "https://opencollective.com/Carbon/sponsor/4/website" target = "_blank" > < img src = "https://opencollective.com/Carbon/sponsor/4/avatar.svg" > < / a >