datex-8.x-1.8/src/Datex/DatexDrupalDateTime.php

src/Datex/DatexDrupalDateTime.php
<?php

namespace Drupal\datex\Datex;

use Drupal\Core\Datetime\DrupalDateTime;

class DatexDrupalDateTime extends DrupalDateTime {

  function format($format, $settings = []) {
    //    $langcode = !empty($settings['langcode']) ? $settings['langcode'] : $this->langcode;
    $value = '';
    try {
      if (!$this->hasErrors()) {
        if (isset($settings['timezone'])) {
          $tz = new \DateTimeZone($settings['timezone']);
        }
        else {
          $tz = $this->getTimezone();
        }
        $cal = datex_factory($tz, 'en');
        if (!$cal) {
          return parent::format($format, $settings);
        }
        return $cal->setTimestamp($this->getTimestamp())->format($format);
      }
    }
    catch (\Exception $e) {
      $this->errors[] = $e->getMessage();
    }
    return $value;
  }

  function origin(): DrupalDateTime {
    $me = new DrupalDateTime(
      $this->getTimestamp(),
      $this->getTimezone(),
      ['langcode' => $this->langcode]
    );

    $me->formatTranslationCache = $this->formatTranslationCache;
    $me->stringTranslation = $this->stringTranslation;

    $me->inputTimeRaw = $this->inputTimeRaw;
    $me->inputTimeAdjusted = $this->inputTimeAdjusted;
    $me->inputTimeZoneRaw = $this->inputTimeZoneRaw;
    $me->inputTimeZoneAdjusted = $this->inputTimeZoneAdjusted;
    $me->inputFormatRaw = $this->inputFormatRaw;
    $me->inputFormatAdjusted = $this->inputFormatAdjusted;
    $me->langcode = $this->langcode;
    $me->errors = $this->errors;
    $me->dateTimeObject = $this->dateTimeObject;

    $me->setTimestamp($this->getTimestamp());

    return $me;
  }

  static function convert(DrupalDateTime $dateTime): DatexDrupalDateTime {
    $me = new DatexDrupalDateTime(
      $dateTime->getTimestamp(),
      $dateTime->getTimezone(),
      ['langcode' => $dateTime->langcode]
    );

    $me->formatTranslationCache = $dateTime->formatTranslationCache;
    $me->stringTranslation = $dateTime->stringTranslation;

    $me->inputTimeRaw = $dateTime->inputTimeRaw;
    $me->inputTimeAdjusted = $dateTime->inputTimeAdjusted;
    $me->inputTimeZoneRaw = $dateTime->inputTimeZoneRaw;
    $me->inputTimeZoneAdjusted = $dateTime->inputTimeZoneAdjusted;
    $me->inputFormatRaw = $dateTime->inputFormatRaw;
    $me->inputFormatAdjusted = $dateTime->inputFormatAdjusted;
    $me->langcode = $dateTime->langcode;
    $me->errors = $dateTime->errors;
    $me->dateTimeObject = $dateTime->dateTimeObject;

    $me->setTimestamp($dateTime->getTimestamp());

    return $me;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc