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'); }