public function testGetTimesInTimeRangeHandlesSummertimeCorrect()
 {
     tx_rnbase::load('tx_rnbase_util_Dates');
     // In dieser Zeitspanne wurde der 30.11.2011 doppelt im Array geliefert (Tag 302).
     $start = tx_rnbase_util_Dates::date_mysql2tstamp('2011-07-13');
     $end = tx_rnbase_util_Dates::date_mysql2tstamp('2012-03-17');
     $days = tx_mklib_util_Date::getTimesInTimeRange($start, $end);
     $daysUnique = array_unique($days);
     $this->assertEquals(count($daysUnique), count($days), 'Es wurden doppelte Tage erzeugt.');
 }
 /**
  * Returns the creation date of the record as DateTime object.
  *
  * @return DateTime
  */
 public function getLastModifyDateTime($timezone = NULL)
 {
     $datetime = NULL;
     $tableName = $this->getTableName();
     if (!empty($tableName)) {
         $field = tx_rnbase_util_TCA::getTstampFieldForTable($tableName);
         if (!$this->isPropertyEmpty($field)) {
             $tstamp = (int) $this->getProperty($field);
             tx_rnbase::load('tx_rnbase_util_Dates');
             $datetime = tx_rnbase_util_Dates::getDateTime('@' . $tstamp);
         }
     }
     return $datetime;
 }
 /**
  * Create a short hash from all values in $params. This can be used as additional link parameter to
  * ensure submitted parameters are not modified.
  * The order of values doesn't matter.
  *
  * @param array $params
  * @param string $salt a secret salt string
  * @param boolean $daily Hash values changed with every new day
  * @return string with 8 characters
  */
 static function createHash($params, $salt = 'secret', $daily = TRUE)
 {
     $str = '';
     if ($daily) {
         tx_rnbase::load('tx_rnbase_util_Dates');
         $str .= tx_rnbase_util_Dates::getTodayDateString();
     }
     sort($params);
     foreach ($params as $key => $value) {
         if (is_array($value)) {
             $value = 1;
         }
         // Arrays werden erstmal nicht unterstützt
         $str .= strval($value);
     }
     $str .= $salt;
     $hash = md5($str);
     return substr($hash, 5, 8);
 }
 /**
  * @param string $mysqlDate
  * @param int $expectedTimestamp
  *
  * @dataProvider dataProviderDateMysql2Tstamp
  */
 public function test_date_mysql2tstamp($mysqlDate, $expectedTimestamp)
 {
     self::assertSame($expectedTimestamp, tx_rnbase_util_Dates::date_mysql2tstamp($mysqlDate));
 }
 /**
  * @param string $fromValue d-m-Y
  * @param string $toValue d-m-Y
  *
  * @return array[to => int, from => int]
  */
 private function getCrDateReturnArray($fromValue, $toValue)
 {
     tx_rnbase::load('tx_rnbase_util_Dates');
     $fromTimestamp = tx_rnbase_util_Dates::date_mysql2tstamp(tx_rnbase_util_Dates::date_german2mysql($fromValue));
     $toTimestamp = tx_rnbase_util_Dates::date_mysql2tstamp(tx_rnbase_util_Dates::date_german2mysql($toValue));
     if ($toTimestamp) {
         $toTimestamp = $this->moveTimestampToTheEndOfTheDay($toTimestamp);
     }
     return array('from' => $fromTimestamp, 'to' => $toTimestamp);
 }
 /**
  * Liefert ein Datumsobjekt anhand eines Strings im XML.
  * @param string $path
  * @return DateTime
  */
 public function getDateTimeFromPath($path)
 {
     $date = $this->getValueFromPath($path);
     tx_rnbase::load('tx_rnbase_util_Dates');
     $date = tx_rnbase_util_Dates::getDateTime($date);
     return $date;
 }
 /**
  * Create timestamp
  * @param int $jahr
  * @param int $monat
  * @param int $tag
  * @param int $std
  * @param int $min
  * @param int $sec
  * @param String $timezone
  */
 public static function getTimeStamp($jahr = 0, $monat = 0, $tag = 0, $std = 0, $min = 0, $sec = 0, $timezone = 'UTC')
 {
     if ($jahr + $monat + $tag + $std + $min + $sec === 0) {
         return 0;
     }
     if (!class_exists('DateTime')) {
         // TODO: implement timezone support for at least PHP 5.1
         return $timezone == 'UTC' ? gmmktime($std, $min, $sec, $monat, $tag, $jahr) : mktime($std, $min, $sec, $monat, $tag, $jahr);
     }
     $tz = timezone_open($timezone);
     if (!is_object($tz)) {
         $tz = timezone_open('UTC');
     }
     // Fallback to UTC
     if (!is_object(self::$dateTime)) {
         self::$dateTime = new DateTime();
     }
     self::$dateTime->setTimezone($tz);
     self::$dateTime->setDate($jahr, $monat, $tag);
     self::$dateTime->setTime($std, $min, $sec);
     return self::$dateTime->format('U');
 }