GettersTest.php 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4. * This file is part of the Carbon package.
  5. *
  6. * (c) Brian Nesbitt <brian@nesbot.com>
  7. *
  8. * For the full copyright and license information, please view the LICENSE
  9. * file that was distributed with this source code.
  10. */
  11. namespace Tests\Carbon;
  12. use Carbon\Carbon;
  13. use Generator;
  14. use InvalidArgumentException;
  15. use Tests\AbstractTestCase;
  16. class GettersTest extends AbstractTestCase
  17. {
  18. public function testGettersThrowExceptionOnUnknownGetter()
  19. {
  20. $this->expectExceptionObject(new InvalidArgumentException(
  21. "Unknown getter 'doesNotExit'"
  22. ));
  23. /** @var mixed $d */
  24. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  25. $d->doesNotExit;
  26. }
  27. public function testGet()
  28. {
  29. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  30. $this->assertSame(5, $d->get('month'));
  31. }
  32. public function testMillenniumGetter()
  33. {
  34. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  35. $this->assertSame(2, $d->millennium);
  36. $d = Carbon::create(2000, 5, 6, 7, 8, 9);
  37. $this->assertSame(2, $d->millennium);
  38. $d = Carbon::create(2001, 5, 6, 7, 8, 9);
  39. $this->assertSame(3, $d->millennium);
  40. $d = Carbon::create(1, 5, 6, 7, 8, 9);
  41. $this->assertSame(1, $d->millennium);
  42. $d = Carbon::create(-1, 5, 6, 7, 8, 9);
  43. $this->assertSame(-1, $d->millennium);
  44. $d = Carbon::create(-100, 5, 6, 7, 8, 9);
  45. $this->assertSame(-1, $d->millennium);
  46. $d = Carbon::create(-101, 5, 6, 7, 8, 9);
  47. $this->assertSame(-1, $d->millennium);
  48. $d = Carbon::create(-1000, 5, 6, 7, 8, 9);
  49. $this->assertSame(-1, $d->millennium);
  50. $d = Carbon::create(-1001, 5, 6, 7, 8, 9);
  51. $this->assertSame(-2, $d->millennium);
  52. }
  53. public function testCenturyGetter()
  54. {
  55. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  56. $this->assertSame(13, $d->century);
  57. $d = Carbon::create(2000, 5, 6, 7, 8, 9);
  58. $this->assertSame(20, $d->century);
  59. $d = Carbon::create(2001, 5, 6, 7, 8, 9);
  60. $this->assertSame(21, $d->century);
  61. $d = Carbon::create(1, 5, 6, 7, 8, 9);
  62. $this->assertSame(1, $d->century);
  63. $d = Carbon::create(-1, 5, 6, 7, 8, 9);
  64. $this->assertSame(-1, $d->century);
  65. $d = Carbon::create(-100, 5, 6, 7, 8, 9);
  66. $this->assertSame(-1, $d->century);
  67. $d = Carbon::create(-101, 5, 6, 7, 8, 9);
  68. $this->assertSame(-2, $d->century);
  69. }
  70. public function testDecadeGetter()
  71. {
  72. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  73. $this->assertSame(124, $d->decade);
  74. }
  75. public function testYearGetter()
  76. {
  77. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  78. $this->assertSame(1234, $d->year);
  79. }
  80. public function testYearIsoGetter()
  81. {
  82. $d = Carbon::createFromDate(2012, 12, 31);
  83. $this->assertSame(2013, $d->yearIso);
  84. }
  85. public function testMonthGetter()
  86. {
  87. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  88. $this->assertSame(5, $d->month);
  89. }
  90. public function testDayGetter()
  91. {
  92. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  93. $this->assertSame(6, $d->day);
  94. }
  95. public function testHourGetter()
  96. {
  97. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  98. $this->assertSame(7, $d->hour);
  99. }
  100. public function testMinuteGetter()
  101. {
  102. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  103. $this->assertSame(8, $d->minute);
  104. }
  105. public function testSecondGetter()
  106. {
  107. $d = Carbon::create(1234, 5, 6, 7, 8, 9);
  108. $this->assertSame(9, $d->second);
  109. }
  110. public function testMicroGetter()
  111. {
  112. $micro = 345678;
  113. $d = Carbon::parse('2014-01-05 12:34:11.'.$micro);
  114. $this->assertSame($micro, $d->micro);
  115. }
  116. public function testMicroGetterWithDefaultNow()
  117. {
  118. $now = Carbon::getTestNow();
  119. Carbon::setTestNow(null);
  120. $start = microtime(true);
  121. usleep(10000);
  122. $d = Carbon::now();
  123. usleep(10000);
  124. $end = microtime(true);
  125. $microTime = $d->getTimestamp() + $d->micro / 1000000;
  126. $this->assertGreaterThan($start, $microTime);
  127. $this->assertLessThan($end, $microTime);
  128. Carbon::setTestNow($now);
  129. }
  130. public function testDayOfWeekGetter()
  131. {
  132. $d = Carbon::create(2012, 5, 7, 7, 8, 9);
  133. $this->assertSame(Carbon::MONDAY, $d->dayOfWeek);
  134. $d = Carbon::create(2012, 5, 8, 7, 8, 9);
  135. $this->assertSame(Carbon::TUESDAY, $d->dayOfWeek);
  136. $d = Carbon::create(2012, 5, 9, 7, 8, 9);
  137. $this->assertSame(Carbon::WEDNESDAY, $d->dayOfWeek);
  138. $d = Carbon::create(2012, 5, 10, 0, 0, 0);
  139. $this->assertSame(Carbon::THURSDAY, $d->dayOfWeek);
  140. $d = Carbon::create(2012, 5, 11, 23, 59, 59);
  141. $this->assertSame(Carbon::FRIDAY, $d->dayOfWeek);
  142. $d = Carbon::create(2012, 5, 12, 12, 0, 0);
  143. $this->assertSame(Carbon::SATURDAY, $d->dayOfWeek);
  144. $d = Carbon::create(2012, 5, 13, 12, 0, 0);
  145. $this->assertSame(Carbon::SUNDAY, $d->dayOfWeek);
  146. }
  147. public function testDayOfWeekIsoGetter()
  148. {
  149. $d = Carbon::create(2012, 5, 7, 7, 8, 9);
  150. $this->assertSame(1, $d->dayOfWeekIso);
  151. $d = Carbon::create(2012, 5, 8, 7, 8, 9);
  152. $this->assertSame(2, $d->dayOfWeekIso);
  153. $d = Carbon::create(2012, 5, 9, 7, 8, 9);
  154. $this->assertSame(3, $d->dayOfWeekIso);
  155. $d = Carbon::create(2012, 5, 10, 0, 0, 0);
  156. $this->assertSame(4, $d->dayOfWeekIso);
  157. $d = Carbon::create(2012, 5, 11, 23, 59, 59);
  158. $this->assertSame(5, $d->dayOfWeekIso);
  159. $d = Carbon::create(2012, 5, 12, 12, 0, 0);
  160. $this->assertSame(6, $d->dayOfWeekIso);
  161. $d = Carbon::create(2012, 5, 13, 12, 0, 0);
  162. $this->assertSame(7, $d->dayOfWeekIso);
  163. }
  164. public function testStringGetters()
  165. {
  166. $d = Carbon::create(2012, 1, 9, 7, 8, 9);
  167. $this->assertSame('Monday', $d->englishDayOfWeek);
  168. $this->assertSame('Mon', $d->shortEnglishDayOfWeek);
  169. $this->assertSame('January', $d->englishMonth);
  170. $this->assertSame('Jan', $d->shortEnglishMonth);
  171. }
  172. public function testLocalizedGetters()
  173. {
  174. Carbon::useStrictMode(false);
  175. $currentLocale = setlocale(LC_ALL, '0');
  176. if (setlocale(LC_ALL, 'fr_FR.UTF-8', 'fr_FR.utf8', 'fr_FR', 'fr') === false) {
  177. $this->markTestSkipped('testSetLocaleToAuto test need fr_FR.UTF-8.');
  178. }
  179. $d = Carbon::create(2019, 7, 15, 7, 8, 9);
  180. $this->assertSame('lundi', $d->localeDayOfWeek);
  181. $this->assertSame('lun.', $d->shortLocaleDayOfWeek);
  182. $this->assertSame('juillet', $d->localeMonth);
  183. $this->assertSame('juil.', $d->shortLocaleMonth);
  184. setlocale(LC_ALL, $currentLocale);
  185. }
  186. public function testDayOfYearGetter()
  187. {
  188. $d = Carbon::createFromDate(2012, 5, 7);
  189. $this->assertSame(128, $d->dayOfYear);
  190. }
  191. public function testDaysInMonthGetter()
  192. {
  193. $d = Carbon::createFromDate(2012, 5, 7);
  194. $this->assertSame(31, $d->daysInMonth);
  195. }
  196. public function testTimestampGetter()
  197. {
  198. $d = Carbon::create();
  199. $d->setTimezone('GMT');
  200. $this->assertSame(0, $d->setDateTime(1970, 1, 1, 0, 0, 0)->timestamp);
  201. }
  202. public function testGetAge()
  203. {
  204. $d = Carbon::now();
  205. $this->assertSame(0, $d->age);
  206. }
  207. public function testGetAgeWithRealAge()
  208. {
  209. $d = Carbon::createFromDate(1975, 5, 21);
  210. $age = (int) (substr((string) ((int) (date('Ymd')) - (int) (date('Ymd', $d->timestamp))), 0, -4));
  211. $this->assertSame($age, $d->age);
  212. }
  213. public static function dataForTestQuarter(): Generator
  214. {
  215. yield [1, 1];
  216. yield [2, 1];
  217. yield [3, 1];
  218. yield [4, 2];
  219. yield [5, 2];
  220. yield [6, 2];
  221. yield [7, 3];
  222. yield [8, 3];
  223. yield [9, 3];
  224. yield [10, 4];
  225. yield [11, 4];
  226. yield [12, 4];
  227. }
  228. /**
  229. * @dataProvider \Tests\Carbon\GettersTest::dataForTestQuarter
  230. *
  231. * @param int $month
  232. * @param int $quarter
  233. */
  234. public function testQuarterFirstOfMonth($month, $quarter)
  235. {
  236. $c = Carbon::create(2015, $month, 1)->startOfMonth();
  237. $this->assertSame($quarter, $c->quarter);
  238. }
  239. /**
  240. * @dataProvider \Tests\Carbon\GettersTest::dataForTestQuarter
  241. *
  242. * @param int $month
  243. * @param int $quarter
  244. */
  245. public function testQuarterMiddleOfMonth($month, $quarter)
  246. {
  247. $c = Carbon::create(2015, $month, 15, 12, 13, 14);
  248. $this->assertSame($quarter, $c->quarter);
  249. }
  250. /**
  251. * @dataProvider \Tests\Carbon\GettersTest::dataForTestQuarter
  252. *
  253. * @param int $month
  254. * @param int $quarter
  255. */
  256. public function testQuarterLastOfMonth($month, $quarter)
  257. {
  258. $c = Carbon::create(2015, $month, 1)->endOfMonth();
  259. $this->assertSame($quarter, $c->quarter);
  260. }
  261. public function testGetLocalTrue()
  262. {
  263. // Default timezone has been set to America/Toronto in AbstractTestCase.php
  264. // @see : https://en.wikipedia.org/wiki/List_of_UTC_time_offsets
  265. $this->assertTrue(Carbon::createFromDate(2012, 1, 1, 'America/Toronto')->local);
  266. $this->assertTrue(Carbon::createFromDate(2012, 1, 1, 'America/Toronto')->isLocal());
  267. $this->assertTrue(Carbon::createFromDate(2012, 1, 1, 'America/New_York')->local);
  268. $this->assertTrue(Carbon::createFromDate(2012, 1, 1, 'America/New_York')->isLocal());
  269. }
  270. public function testGetLocalFalse()
  271. {
  272. $this->assertFalse(Carbon::createFromDate(2012, 7, 1, 'UTC')->local);
  273. $this->assertFalse(Carbon::createFromDate(2012, 7, 1, 'UTC')->isLocal());
  274. $this->assertFalse(Carbon::createFromDate(2012, 7, 1, 'Europe/London')->local);
  275. $this->assertFalse(Carbon::createFromDate(2012, 7, 1, 'Europe/London')->isLocal());
  276. }
  277. public function testGetUtcFalse()
  278. {
  279. $this->assertFalse(Carbon::createFromDate(2013, 1, 1, 'America/Toronto')->utc);
  280. $this->assertFalse(Carbon::createFromDate(2013, 1, 1, 'America/Toronto')->isUtc());
  281. /** @var object $date */
  282. $date = Carbon::createFromDate(2013, 1, 1, 'America/Toronto');
  283. $this->assertFalse($date->isUTC());
  284. $this->assertFalse(Carbon::createFromDate(2013, 1, 1, 'Europe/Paris')->utc);
  285. $this->assertFalse(Carbon::createFromDate(2013, 1, 1, 'Europe/Paris')->isUtc());
  286. /** @var object $date */
  287. $date = Carbon::createFromDate(2013, 1, 1, 'Europe/Paris');
  288. $this->assertFalse($date->isUTC());
  289. }
  290. public function testGetUtcTrue()
  291. {
  292. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Atlantic/Reykjavik')->utc);
  293. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Atlantic/Reykjavik')->isUtc());
  294. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Europe/Lisbon')->utc);
  295. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Europe/Lisbon')->isUtc());
  296. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Africa/Casablanca')->utc);
  297. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Africa/Casablanca')->isUtc());
  298. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Africa/Dakar')->utc);
  299. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Africa/Dakar')->isUtc());
  300. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Europe/Dublin')->utc);
  301. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Europe/Dublin')->isUtc());
  302. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Europe/London')->utc);
  303. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'Europe/London')->isUtc());
  304. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'UTC')->utc);
  305. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'UTC')->isUtc());
  306. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'GMT')->utc);
  307. $this->assertTrue(Carbon::createFromDate(2013, 1, 1, 'GMT')->isUtc());
  308. }
  309. public function testGetDstFalse()
  310. {
  311. $this->assertFalse(Carbon::createFromDate(2012, 1, 1, 'America/Toronto')->dst);
  312. $this->assertFalse(Carbon::createFromDate(2012, 1, 1, 'America/Toronto')->isDST());
  313. }
  314. public function testGetDstTrue()
  315. {
  316. $this->assertTrue(Carbon::createFromDate(2012, 7, 1, 'America/Toronto')->dst);
  317. $this->assertTrue(Carbon::createFromDate(2012, 7, 1, 'America/Toronto')->isDST());
  318. }
  319. public function testGetMidDayAt()
  320. {
  321. $d = Carbon::now();
  322. $this->assertSame(12, $d->getMidDayAt());
  323. }
  324. public function testOffsetForTorontoWithDST()
  325. {
  326. $this->assertSame(-18000, Carbon::createFromDate(2012, 1, 1, 'America/Toronto')->offset);
  327. }
  328. public function testOffsetForTorontoNoDST()
  329. {
  330. $this->assertSame(-14400, Carbon::createFromDate(2012, 6, 1, 'America/Toronto')->offset);
  331. }
  332. public function testOffsetForGMT()
  333. {
  334. $this->assertSame(0, Carbon::createFromDate(2012, 6, 1, 'GMT')->offset);
  335. }
  336. public function testOffsetHoursForTorontoWithDST()
  337. {
  338. $this->assertSame(-5, Carbon::createFromDate(2012, 1, 1, 'America/Toronto')->offsetHours);
  339. }
  340. public function testOffsetHoursForTorontoNoDST()
  341. {
  342. $this->assertSame(-4, Carbon::createFromDate(2012, 6, 1, 'America/Toronto')->offsetHours);
  343. }
  344. public function testOffsetHoursForGMT()
  345. {
  346. $this->assertSame(0, Carbon::createFromDate(2012, 6, 1, 'GMT')->offsetHours);
  347. }
  348. public function testIsLeapYearTrue()
  349. {
  350. $this->assertTrue(Carbon::createFromDate(2012, 1, 1)->isLeapYear());
  351. }
  352. public function testIsLeapYearFalse()
  353. {
  354. $this->assertFalse(Carbon::createFromDate(2011, 1, 1)->isLeapYear());
  355. }
  356. public function testIsLongYearTrue()
  357. {
  358. $this->assertTrue(Carbon::createFromDate(2015, 1, 1)->isLongYear());
  359. $this->assertTrue(Carbon::createFromDate(2020, 1, 1)->isLongYear());
  360. }
  361. public function testIsLongIsoYearTrue()
  362. {
  363. $this->assertTrue(Carbon::createFromDate(2015, 1, 1)->isLongIsoYear());
  364. $this->assertTrue(Carbon::createFromDate(2016, 1, 1)->isLongIsoYear());
  365. $this->assertTrue(Carbon::createFromDate(2019, 12, 30)->isLongIsoYear());
  366. }
  367. public function testIsLongYearFalse()
  368. {
  369. $this->assertFalse(Carbon::createFromDate(2016, 1, 1)->isLongYear());
  370. $this->assertFalse(Carbon::createFromDate(2019, 12, 29)->isLongYear());
  371. $this->assertFalse(Carbon::createFromDate(2019, 12, 30)->isLongYear());
  372. }
  373. public function testIsLongIsoYearFalse()
  374. {
  375. $this->assertTrue(Carbon::createFromDate(2016, 1, 3)->isLongIsoYear());
  376. $this->assertFalse(Carbon::createFromDate(2019, 12, 29)->isLongIsoYear());
  377. $this->assertFalse(Carbon::createFromDate(2018, 12, 31)->isLongIsoYear());
  378. }
  379. public function testWeekOfMonth()
  380. {
  381. $this->assertSame(5, Carbon::createFromDate(2012, 9, 30)->weekOfMonth);
  382. $this->assertSame(4, Carbon::createFromDate(2012, 9, 28)->weekOfMonth);
  383. $this->assertSame(3, Carbon::createFromDate(2012, 9, 20)->weekOfMonth);
  384. $this->assertSame(2, Carbon::createFromDate(2012, 9, 8)->weekOfMonth);
  385. $this->assertSame(1, Carbon::createFromDate(2012, 9, 1)->weekOfMonth);
  386. }
  387. public function testWeekNumberInMonthIsNotFromTheBeginning()
  388. {
  389. $this->assertSame(5, Carbon::createFromDate(2017, 2, 28)->weekNumberInMonth);
  390. $this->assertSame(5, Carbon::createFromDate(2017, 2, 27)->weekNumberInMonth);
  391. $this->assertSame(4, Carbon::createFromDate(2017, 2, 26)->weekNumberInMonth);
  392. $this->assertSame(4, Carbon::createFromDate(2017, 2, 20)->weekNumberInMonth);
  393. $this->assertSame(3, Carbon::createFromDate(2017, 2, 19)->weekNumberInMonth);
  394. $this->assertSame(3, Carbon::createFromDate(2017, 2, 13)->weekNumberInMonth);
  395. $this->assertSame(2, Carbon::createFromDate(2017, 2, 12)->weekNumberInMonth);
  396. $this->assertSame(2, Carbon::createFromDate(2017, 2, 6)->weekNumberInMonth);
  397. $this->assertSame(1, Carbon::createFromDate(2017, 2, 1)->weekNumberInMonth);
  398. $this->assertSame(1, Carbon::createFromDate(2018, 7, 1)->weekNumberInMonth);
  399. $this->assertSame(2, Carbon::createFromDate(2018, 7, 2)->weekNumberInMonth);
  400. $this->assertSame(2, Carbon::createFromDate(2018, 7, 5)->weekNumberInMonth);
  401. $this->assertSame(2, Carbon::createFromDate(2018, 7, 8)->weekNumberInMonth);
  402. $this->assertSame(3, Carbon::createFromDate(2018, 7, 9)->weekNumberInMonth);
  403. $this->assertSame(5, Carbon::createFromDate(2018, 7, 29)->weekNumberInMonth);
  404. $this->assertSame(6, Carbon::createFromDate(2018, 7, 30)->weekNumberInMonth);
  405. }
  406. public function testWeekOfYearFirstWeek()
  407. {
  408. $this->assertSame(52, Carbon::createFromDate(2012, 1, 1)->weekOfYear);
  409. $this->assertSame(1, Carbon::createFromDate(2012, 1, 2)->weekOfYear);
  410. }
  411. public function testWeekOfYearLastWeek()
  412. {
  413. $this->assertSame(52, Carbon::createFromDate(2012, 12, 30)->weekOfYear);
  414. $this->assertSame(1, Carbon::createFromDate(2012, 12, 31)->weekOfYear);
  415. }
  416. public function testGetTimezone()
  417. {
  418. $dt = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
  419. $this->assertSame('America/Toronto', $dt->timezone->getName());
  420. $dt = Carbon::createFromDate(2000, 1, 1, -5);
  421. $this->assertSame('America/Chicago', $dt->timezone->getName());
  422. $dt = Carbon::createFromDate(2000, 1, 1, '-5');
  423. $this->assertSame('-05:00', $dt->timezone->getName());
  424. }
  425. public function testGetTz()
  426. {
  427. $dt = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
  428. $this->assertSame('America/Toronto', $dt->tz->getName());
  429. $dt = Carbon::createFromDate(2000, 1, 1, -5);
  430. $this->assertSame('America/Chicago', $dt->tz->getName());
  431. $dt = Carbon::createFromDate(2000, 1, 1, '-5');
  432. $this->assertSame('-05:00', $dt->tz->getName());
  433. }
  434. public function testGetTimezoneName()
  435. {
  436. $dt = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
  437. $this->assertSame('America/Toronto', $dt->timezoneName);
  438. $dt = Carbon::createFromDate(2000, 1, 1, -5);
  439. $this->assertSame('America/Chicago', $dt->timezoneName);
  440. $dt = Carbon::createFromDate(2000, 1, 1, '-5');
  441. $this->assertSame('-05:00', $dt->timezoneName);
  442. }
  443. public function testGetTzName()
  444. {
  445. $dt = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
  446. $this->assertSame('America/Toronto', $dt->tzName);
  447. $dt = Carbon::createFromDate(2000, 1, 1, -5);
  448. $this->assertSame('America/Chicago', $dt->timezoneName);
  449. $dt = Carbon::createFromDate(2000, 1, 1, '-5');
  450. $this->assertSame('-05:00', $dt->timezoneName);
  451. }
  452. public function testShortDayName()
  453. {
  454. $dt = Carbon::createFromDate(2018, 8, 6);
  455. $this->assertSame('Mon', $dt->shortDayName);
  456. $this->assertSame('lun.', $dt->locale('fr')->shortDayName);
  457. }
  458. public function testMinDayName()
  459. {
  460. $dt = Carbon::createFromDate(2018, 8, 6);
  461. $this->assertSame('Mo', $dt->minDayName);
  462. $this->assertSame('lu', $dt->locale('fr')->minDayName);
  463. }
  464. public function testShortMonthName()
  465. {
  466. $dt = Carbon::createFromDate(2018, 7, 6);
  467. $this->assertSame('Jul', $dt->shortMonthName);
  468. $this->assertSame('juil.', $dt->locale('fr')->shortMonthName);
  469. }
  470. public function testGetDays()
  471. {
  472. $days = [
  473. Carbon::SUNDAY => 'Sunday',
  474. Carbon::MONDAY => 'Monday',
  475. Carbon::TUESDAY => 'Tuesday',
  476. Carbon::WEDNESDAY => 'Wednesday',
  477. Carbon::THURSDAY => 'Thursday',
  478. Carbon::FRIDAY => 'Friday',
  479. Carbon::SATURDAY => 'Saturday',
  480. ];
  481. $this->assertSame($days, Carbon::getDays());
  482. }
  483. }