領収証発行サービス
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

48 lines
983B

  1. <?php
  2. namespace App\Util;
  3. use Illuminate\Support\Carbon;
  4. class DateUtil
  5. {
  6. public static function now()
  7. {
  8. if (!app()->environment('local')) {
  9. return new Carbon();
  10. }
  11. $nowStr = self::getConfig();
  12. if ($nowStr !== null && $nowStr !== '') {
  13. $date = new Carbon($nowStr);
  14. if ($date->isValid()) {
  15. return new Carbon();
  16. return $date;
  17. }
  18. }
  19. return new Carbon();
  20. }
  21. public static function parse(string $source, ?string $format = null): Carbon|null
  22. {
  23. if ($format) {
  24. $date = Carbon::createFromFormat($format, $source);
  25. } else {
  26. $date = Carbon::parse($source);
  27. }
  28. if ($date && $date->isValid()) {
  29. return $date->timezone(config('app.timezone'));
  30. }
  31. return null;
  32. }
  33. private static function getConfig()
  34. {
  35. return config('date.now', null);
  36. }
  37. }