Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

45 lines
890B

  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): Carbon|null
  22. {
  23. if (!$source) {
  24. return null;
  25. }
  26. $date = Carbon::parse($source);
  27. if ($date->isValid()) {
  28. return $date->timezone(config('app.timezone'));
  29. }
  30. return null;
  31. }
  32. private static function getConfig()
  33. {
  34. return config('date.now', null);
  35. }
  36. }