nesbot / carbon
An API extension for DateTime that supports 281 different languages.
Fund package maintenance!
kylekatarnls
Tidelift
Opencollective
Installs: 492 216 711
Dependents: 4 775
Suggesters: 66
Security: 0
Stars: 16 573
Watchers: 220
Forks: 1 282
Open Issues: 19
Requires
- php: ^8.1
- ext-json: *
- carbonphp/carbon-doctrine-types: <100.0
- psr/clock: ^1.0
- symfony/clock: ^6.3 || ^7.0
- symfony/polyfill-mbstring: ^1.0
- symfony/translation: ^4.4.18 || ^5.2.1|| ^6.0 || ^7.0
Requires (Dev)
- doctrine/dbal: ^3.6.3 || ^4.0
- doctrine/orm: ^2.15.2 || ^3.0
- friendsofphp/php-cs-fixer: ^3.57.2
- kylekatarnls/multi-tester: ^2.5.3
- ondrejmirtes/better-reflection: ^6.25.0.4
- phpmd/phpmd: ^2.15.0
- phpstan/extension-installer: ^1.3.1
- phpstan/phpstan: ^1.11.2
- phpunit/phpunit: ^10.5.20
- squizlabs/php_codesniffer: ^3.9.0
Provides
- 3.x-dev
- dev-master / 3.x-dev
- 3.8.2
- 3.8.1
- 3.8.0
- 3.7.0
- 3.6.0
- 3.5.0
- 3.4.0
- 3.3.1
- 3.3.0
- 3.2.4
- 3.2.3
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.1
- 3.1.0
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-rc.3
- 3.0.0-rc.1
- 3.0.0-beta.3
- 3.0.0-beta.2
- 3.0.0-beta.1
- 2.x-dev
- 2.72.5
- 2.72.4
- 2.72.3
- 2.72.2
- 2.72.1
- 2.72.0
- 2.71.0
- 2.70.0
- 2.69.0
- 2.68.1
- 2.68.0
- 2.67.0
- 2.66.0
- 2.65.0
- 2.64.1
- 2.64.0
- 2.63.0
- 2.62.1
- 2.62.0
- 2.61.0
- 2.60.0
- 2.59.1
- 2.59.0
- 2.58.0
- 2.57.0
- 2.56.0
- 2.55.2
- 2.55.1
- 2.55.0
- 2.54.0
- 2.53.1
- 2.53.0
- 2.52.0
- 2.51.1
- 2.51.0
- 2.50.0
- 2.49.0
- 2.48.1
- 2.48.0
- 2.47.1
- 2.47.0
- 2.46.0
- 2.45.1
- 2.45.0
- 2.44.0
- 2.43.0
- 2.42.0
- 2.41.5
- 2.41.4
- 2.41.3
- 2.41.2
- 2.41.1
- 2.41.0
- 2.40.1
- 2.40.0
- 2.39.2
- 2.39.1
- 2.39.0
- 2.38.0
- 2.37.0
- 2.36.1
- 2.36.0
- 2.35.0
- 2.34.2
- 2.34.1
- 2.34.0
- 2.33.0
- 2.32.2
- 2.32.1
- 2.32.0
- 2.31.0
- 2.30.0
- 2.29.1
- 2.29.0
- 2.28.0
- 2.28.0-beta.1
- 2.27.0
- 2.26.0
- 2.25.3
- 2.25.2
- 2.25.1
- 2.25.0
- 2.25.0-beta.3
- 2.25.0-beta.2
- 2.25.0-beta.1
- 2.24.0
- 2.24.0-beta.4
- 2.24.0-beta.3
- 2.24.0-beta.2
- 2.24.0-beta.1
- 2.23.1
- 2.23.0
- 2.23.0-beta.4
- 2.23.0-beta.3
- 2.23.0-beta.2
- 2.23.0-beta.1
- 2.22.3
- 2.22.2
- 2.22.1
- 2.22.0
- 2.22.0-beta.3
- 2.22.0-beta.2
- 2.22.0-beta.1
- 2.21.3
- 2.21.2
- 2.21.1
- 2.21.0
- 2.20.0
- 2.19.2
- 2.19.1
- 2.19.0
- 2.18.0
- 2.17.1
- 2.17.0
- 2.16.3
- 2.16.2
- 2.16.1
- 2.16.0
- 2.15.0
- 2.14.2
- 2.14.1
- 2.14.0
- 2.13.0
- 2.12.0
- 2.11.0
- 2.10.1
- 2.10.0
- 2.9.1
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.1
- 2.6.0
- 2.5.4
- 2.5.3
- 2.5.2
- 2.5.1
- 2.5.0
- 2.4.1
- 2.4.0
- 2.3.1
- 2.3.0
- 2.2.1
- 2.2.0
- 2.1.1
- 2.1.0
- 2.0.1
- 2.0.0
- 2.0.0-beta.6
- 2.0.0-beta.5
- 2.0.0-beta.4
- 2.0.0-beta.3
- 2.0.0-beta.2
- 2.0.0-beta.1
- 1.39.1
- 1.39.0
- 1.38.4
- 1.38.3
- 1.38.2
- 1.38.1
- 1.38.0
- 1.37.1
- 1.37.0
- 1.36.2
- 1.36.1
- 1.36.0
- 1.35.1
- 1.35.0
- 1.34.4
- 1.34.3
- 1.34.2
- 1.34.1
- 1.34.0
- 1.33.0
- 1.32.0
- 1.31.1
- 1.31.0
- 1.30.0
- 1.29.2
- 1.29.1
- 1.29.0
- 1.28.0
- 1.27.0
- 1.26.6
- 1.26.5
- 1.26.4
- 1.26.3
- 1.26.2
- 1.26.1
- 1.26.0
- 1.25.3
- 1.25.1
- 1.25.0
- 1.24.2
- 1.24.1
- 1.24.0
- 1.23.0
- 1.22.1
- 1.22.0
- 1.21.0
- 1.20.0
- 1.19.0
- 1.18.0
- 1.17.0
- 1.16.0
- 1.15.0
- 1.14.0
- 1.13.0
- 1.12.0
- 1.11.0
- 1.10.0
- 1.9.0
- 1.8.0
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.1
- 1.0.0
- dev-dependabot/composer/phpstan/phpstan-tw-1.11.2or-tw-2.0.0
This package is auto-updated.
Last update: 2024-11-19 17:16:10 UTC
README
An international PHP extension for DateTime. https://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(); $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(); // something such as: // 19817.6771 $daysUntilInternetBlowUp = $internetWillBlowUpOn->diffInDays(); // Negative value since it's in the future: // -5037.4560 // Without parameter, difference is calculated from now, but doing $a->diff($b) // it will count time from $a to $b. Carbon::createFromTimestamp(0)->diffInDays($internetWillBlowUpOn); // 24855.1348
Installation
With Composer
$ composer require nesbot/carbon
{ "require": { "nesbot/carbon": "^3" } }
<?php require 'vendor/autoload.php'; use Carbon\Carbon; printf("Now: %s", Carbon::now());
Without Composer
Why are you not using composer? Download the Carbon latest release 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 require 'path-to-Carbon-directory/autoload.php'; use Carbon\Carbon; printf("Now: %s", Carbon::now());
Documentation
https://carbon.nesbot.com/docs
Security contact information
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.
Credits
Contributors
This project exists thanks to all the people who contribute.
Translators
Thanks to people helping us to translate Carbon in so many languages
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website.
[See all] [Become a sponsor via OpenCollective]
Backers
Thank you to all our backers! 🙏
Carbon for enterprise
Available as part of the Tidelift Subscription.
The maintainers of Carbon
and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. Learn more.