134 lines
5.3 KiB
Markdown
134 lines
5.3 KiB
Markdown
# Carbon
|
|
|
|
[![Latest Stable Version](https://img.shields.io/packagist/v/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon)
|
|
[![Total Downloads](https://img.shields.io/packagist/dt/nesbot/carbon.svg?style=flat-square)](https://packagist.org/packages/nesbot/carbon)
|
|
[![Build Status](https://img.shields.io/travis/briannesbitt/Carbon/master.svg?style=flat-square)](https://travis-ci.org/briannesbitt/Carbon)
|
|
[![StyleCI](https://styleci.io/repos/5724990/shield?style=flat-square)](https://styleci.io/repos/5724990)
|
|
[![codecov.io](https://img.shields.io/codecov/c/github/briannesbitt/Carbon.svg?style=flat-square)](https://codecov.io/github/briannesbitt/Carbon?branch=master)
|
|
[![PHPStan](https://img.shields.io/badge/PHPStan-enabled-44CC11.svg?longCache=true&style=flat-square)](https://github.com/phpstan/phpstan)
|
|
[![Tidelift](https://tidelift.com/badges/github/briannesbitt/Carbon)](https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme)
|
|
|
|
An international PHP extension for DateTime. [http://carbon.nesbot.com](http://carbon.nesbot.com)
|
|
|
|
```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();
|
|
$nextSummerOlympics = Carbon::createFromDate(2016)->addYears(4);
|
|
|
|
$officialDate = Carbon::now()->toRfc2822String();
|
|
|
|
$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;
|
|
|
|
$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');
|
|
|
|
$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');
|
|
|
|
// Don't really want this to happen so mock now
|
|
Carbon::setTestNow(Carbon::createFromDate(2000, 1, 1));
|
|
|
|
// comparisons are always done in UTC
|
|
if (Carbon::now()->gte($internetWillBlowUpOn)) {
|
|
die();
|
|
}
|
|
|
|
// Phew! Return to normal behaviour
|
|
Carbon::setTestNow();
|
|
|
|
if (Carbon::now()->isWeekend()) {
|
|
echo 'Party!';
|
|
}
|
|
// Over 200 languages (and over 500 regional variants) supported:
|
|
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'
|
|
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'
|
|
|
|
// ... but also does 'from now', 'after' and 'before'
|
|
// rolling up to seconds, minutes, hours, days, months, years
|
|
|
|
$daysSinceEpoch = Carbon::createFromTimestamp(0)->diffInDays();
|
|
```
|
|
|
|
[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)
|
|
|
|
## Installation
|
|
|
|
### With Composer
|
|
|
|
```
|
|
$ composer require nesbot/carbon
|
|
```
|
|
|
|
```json
|
|
{
|
|
"require": {
|
|
"nesbot/carbon": "^2.16"
|
|
}
|
|
}
|
|
```
|
|
|
|
```php
|
|
<?php
|
|
require 'vendor/autoload.php';
|
|
|
|
use Carbon\Carbon;
|
|
|
|
printf("Now: %s", Carbon::now());
|
|
```
|
|
|
|
<a name="install-nocomposer"/>
|
|
|
|
### Without Composer
|
|
|
|
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.
|
|
|
|
```php
|
|
<?php
|
|
require 'path-to-Carbon-directory/autoload.php';
|
|
|
|
use Carbon\Carbon;
|
|
|
|
printf("Now: %s", Carbon::now());
|
|
```
|
|
|
|
## Docs
|
|
|
|
[http://carbon.nesbot.com/docs](http://carbon.nesbot.com/docs)
|
|
|
|
## 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>
|