2016-10-06 15:57:01 +00:00
|
|
|
<?php
|
2018-12-10 12:13:27 +00:00
|
|
|
|
2016-10-06 15:57:01 +00:00
|
|
|
/**
|
|
|
|
* Project:
|
|
|
|
* Contenido Content Management System
|
|
|
|
*
|
|
|
|
* Description:
|
|
|
|
* Area management class
|
|
|
|
*
|
|
|
|
* Requirements:
|
|
|
|
* @con_php_req 5.0
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* @package Contenido Backend classes
|
|
|
|
* @version 1.0.1
|
|
|
|
* @author
|
|
|
|
* @copyright four for business AG <www.4fb.de>
|
|
|
|
* @license http://www.contenido.org/license/LIZENZ.txt
|
|
|
|
* @link http://www.4fb.de
|
|
|
|
* @link http://www.contenido.org
|
|
|
|
*
|
|
|
|
* {@internal
|
|
|
|
* modified 2009-10-23, Murat Purc, removed deprecated function (PHP 5.3 ready)
|
|
|
|
*
|
2019-07-03 11:58:28 +00:00
|
|
|
* $Id$:
|
2016-10-06 15:57:01 +00:00
|
|
|
* }}
|
|
|
|
*
|
|
|
|
*/
|
2018-12-10 12:13:27 +00:00
|
|
|
if (!defined('CON_FRAMEWORK')) {
|
|
|
|
die('Illegal call');
|
2016-10-06 15:57:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* The UNIX Timestamp is the amount of seconds
|
2018-12-10 12:13:27 +00:00
|
|
|
passed since Jan 1 1970 00:00:00 GMT */
|
|
|
|
define("cDateTime_UNIX", 1);
|
2016-10-06 15:57:01 +00:00
|
|
|
|
|
|
|
/* The ISO Date format is CCYY-MM-DD HH:mm:SS */
|
2018-12-10 12:13:27 +00:00
|
|
|
define("cDateTime_ISO", 2);
|
2016-10-06 15:57:01 +00:00
|
|
|
|
|
|
|
/* The locale format, as specified in the Contenido backend */
|
|
|
|
define("cDateTime_Locale", 3);
|
|
|
|
|
|
|
|
/* The locale format, as specified in the Contenido backend */
|
|
|
|
define("cDateTime_Locale_TimeOnly", 4);
|
|
|
|
|
|
|
|
/* The locale format, as specified in the Contenido backend */
|
|
|
|
define("cDateTime_Locale_DateOnly", 5);
|
|
|
|
|
|
|
|
/* The MySQL Timestamp is CCYYMMDDHHmmSS */
|
2018-12-10 12:13:27 +00:00
|
|
|
define("cDateTime_MySQL", 6);
|
2016-10-06 15:57:01 +00:00
|
|
|
|
|
|
|
/* Custom format */
|
2018-12-10 12:13:27 +00:00
|
|
|
define("cDateTime_Custom", 99);
|
2016-10-06 15:57:01 +00:00
|
|
|
|
|
|
|
define("cDateTime_Sunday", 0);
|
|
|
|
define("cDateTime_Monday", 1);
|
|
|
|
define("cDateTime_Tuesday", 2);
|
|
|
|
define("cDateTime_Wednesday", 3);
|
|
|
|
define("cDateTime_Thursday", 4);
|
|
|
|
define("cDateTime_Friday", 5);
|
|
|
|
define("cDateTime_Saturday", 6);
|
|
|
|
|
2018-12-10 12:13:27 +00:00
|
|
|
class cDatatypeDateTime extends cDatatype {
|
|
|
|
|
|
|
|
var $_iFirstDayOfWeek;
|
|
|
|
|
|
|
|
/* This datatype stores its date format in ISO */
|
|
|
|
|
|
|
|
function __construct() {
|
|
|
|
$this->setTargetFormat(cDateTime_Locale);
|
|
|
|
$this->setSourceFormat(cDateTime_UNIX);
|
|
|
|
|
|
|
|
$this->_iYear = 1970;
|
|
|
|
$this->_iMonth = 1;
|
|
|
|
$this->_iDay = 1;
|
|
|
|
$this->_iHour = 0;
|
|
|
|
$this->_iMinute = 0;
|
|
|
|
$this->_iSecond = 0;
|
|
|
|
|
|
|
|
$this->setFirstDayOfWeek(cDateTime_Monday);
|
|
|
|
parent::__construct();
|
|
|
|
}
|
|
|
|
|
|
|
|
function setCustomTargetFormat($targetFormat) {
|
|
|
|
$this->_sCustomTargetFormat = $targetFormat;
|
|
|
|
}
|
|
|
|
|
|
|
|
function setCustomSourceFormat($sourceFormat) {
|
|
|
|
$this->_sCustomSourceFormat = $sourceFormat;
|
|
|
|
}
|
|
|
|
|
|
|
|
function setSourceFormat($cSourceFormat) {
|
|
|
|
$this->_cSourceFormat = $cSourceFormat;
|
|
|
|
}
|
|
|
|
|
|
|
|
function setTargetFormat($cTargetFormat) {
|
|
|
|
$this->_cTargetFormat = $cTargetFormat;
|
|
|
|
}
|
|
|
|
|
|
|
|
function setYear($iYear) {
|
|
|
|
$this->_iYear = $iYear;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getYear() {
|
|
|
|
return ($this->_iYear);
|
|
|
|
}
|
|
|
|
|
|
|
|
function setMonth($iMonth) {
|
|
|
|
$this->_iMonth = $iMonth;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getMonth() {
|
|
|
|
return ($this->_iMonth);
|
|
|
|
}
|
|
|
|
|
|
|
|
function setDay($iDay) {
|
|
|
|
$this->_iDay = $iDay;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getDay() {
|
|
|
|
return ($this->_iDay);
|
|
|
|
}
|
|
|
|
|
|
|
|
function getMonthName($iMonth) {
|
|
|
|
switch ($iMonth) {
|
|
|
|
case 1: return i18n("January");
|
|
|
|
case 2: return i18n("February");
|
|
|
|
case 3: return i18n("March");
|
|
|
|
case 4: return i18n("April");
|
|
|
|
case 5: return i18n("May");
|
|
|
|
case 6: return i18n("June");
|
|
|
|
case 7: return i18n("July");
|
|
|
|
case 8: return i18n("August");
|
|
|
|
case 9: return i18n("September");
|
|
|
|
case 10: return i18n("October");
|
|
|
|
case 11: return i18n("November");
|
|
|
|
case 12: return i18n("December");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function getDayName($iDayOfWeek) {
|
|
|
|
switch ($iDayOfWeek) {
|
|
|
|
case 0: return i18n("Sunday");
|
|
|
|
case 1: return i18n("Monday");
|
|
|
|
case 2: return i18n("Tuesday");
|
|
|
|
case 3: return i18n("Wednesday");
|
|
|
|
case 4: return i18n("Thursday");
|
|
|
|
case 5: return i18n("Friday");
|
|
|
|
case 6: return i18n("Saturday");
|
|
|
|
case 7: return i18n("Sunday");
|
|
|
|
default: return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function getDayOrder() {
|
|
|
|
$aDays = array(0, 1, 2, 3, 4, 5, 6);
|
|
|
|
$aRemainderDays = array_splice($aDays, 0, $this->_iFirstDayOfWeek);
|
|
|
|
|
|
|
|
$aReturnDays = array_merge($aDays, $aRemainderDays);
|
|
|
|
|
|
|
|
return ($aReturnDays);
|
|
|
|
}
|
|
|
|
|
|
|
|
function getNumberOfMonthDays($iMonth = false, $iYear = false) {
|
|
|
|
if ($iMonth === false) {
|
|
|
|
$iMonth = $this->_iMonth;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($iYear === false) {
|
|
|
|
$iYear = $this->_iYear;
|
|
|
|
}
|
|
|
|
|
|
|
|
return date("t", mktime(0, 0, 0, $iMonth, 1, $iYear));
|
|
|
|
}
|
|
|
|
|
|
|
|
function setFirstDayOfWeek($iDay) {
|
|
|
|
$this->_iFirstDayOfWeek = $iDay;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getFirstDayOfWeek() {
|
|
|
|
return $this->_iFirstDayOfWeek;
|
|
|
|
}
|
|
|
|
|
|
|
|
function getLeapDay() {
|
|
|
|
return end($this->getDayOrder());
|
|
|
|
}
|
|
|
|
|
|
|
|
function set($value, $iOverrideFormat = false) {
|
|
|
|
if ($value == "") {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($iOverrideFormat !== false) {
|
|
|
|
$iFormat = $iOverrideFormat;
|
|
|
|
} else {
|
|
|
|
$iFormat = $this->_cSourceFormat;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch ($iFormat) {
|
|
|
|
case cDateTime_UNIX:
|
|
|
|
$sTemporaryTimestamp = $value;
|
|
|
|
$this->_iYear = date("Y", $sTemporaryTimestamp);
|
|
|
|
$this->_iMonth = date("m", $sTemporaryTimestamp);
|
|
|
|
$this->_iDay = date("d", $sTemporaryTimestamp);
|
|
|
|
$this->_iHour = date("H", $sTemporaryTimestamp);
|
|
|
|
$this->_iMinute = date("i", $sTemporaryTimestamp);
|
|
|
|
$this->_iSecond = date("s", $sTemporaryTimestamp);
|
|
|
|
|
|
|
|
break;
|
|
|
|
case cDateTime_ISO:
|
|
|
|
$sTemporaryTimestamp = strtotime($value);
|
|
|
|
$this->_iYear = date("Y", $sTemporaryTimestamp);
|
|
|
|
$this->_iMonth = date("m", $sTemporaryTimestamp);
|
|
|
|
$this->_iDay = date("d", $sTemporaryTimestamp);
|
|
|
|
$this->_iHour = date("H", $sTemporaryTimestamp);
|
|
|
|
$this->_iMinute = date("i", $sTemporaryTimestamp);
|
|
|
|
$this->_iSecond = date("s", $sTemporaryTimestamp);
|
|
|
|
break;
|
2016-10-06 15:57:01 +00:00
|
|
|
case cDateTime_MySQL:
|
|
|
|
$sTimeformat = 'YmdHis';
|
2018-12-10 12:13:27 +00:00
|
|
|
|
|
|
|
$targetFormat = str_replace('.', '\.', $sTimeformat);
|
|
|
|
$targetFormat = str_replace('d', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('m', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('Y', '([0-9]{4,4})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('H', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('i', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('s', '([0-9]{2,2})', $targetFormat);
|
|
|
|
/* Match the placeholders */
|
|
|
|
preg_match_all('/([a-zA-Z])/', $sTimeformat, $placeholderRegs);
|
|
|
|
|
|
|
|
/* Match the date values */
|
|
|
|
preg_match('/' . $targetFormat . '/', $value, $dateRegs);
|
|
|
|
|
|
|
|
$finalDate = array();
|
|
|
|
|
|
|
|
/* Map date entries to placeholders */
|
|
|
|
foreach ($placeholderRegs[0] as $key => $placeholderReg) {
|
|
|
|
if (isset($dateRegs[$key])) {
|
|
|
|
$finalDate[$placeholderReg] = $dateRegs[$key + 1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Assign placeholders + data to the object's member variables */
|
|
|
|
foreach ($finalDate as $placeHolder => $value) {
|
|
|
|
switch ($placeHolder) {
|
|
|
|
case "d":
|
|
|
|
$this->_iDay = $value;
|
|
|
|
break;
|
|
|
|
case "m":
|
|
|
|
$this->_iMonth = $value;
|
|
|
|
break;
|
|
|
|
case "Y":
|
|
|
|
$this->_iYear = $value;
|
|
|
|
break;
|
|
|
|
case "H":
|
|
|
|
$this->_iHour = $value;
|
|
|
|
break;
|
|
|
|
case "i":
|
|
|
|
$this->_iMinute = $value;
|
|
|
|
break;
|
|
|
|
case "s":
|
|
|
|
$this->_iSecond = $value;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
case cDateTime_Custom:
|
|
|
|
/* Build a regular expression */
|
|
|
|
|
|
|
|
$sourceFormat = str_replace('.', '\.', $this->_sCustomSourceFormat);
|
|
|
|
$sourceFormat = str_replace('%d', '([0-9]{2,2})', $sourceFormat);
|
|
|
|
$sourceFormat = str_replace('%m', '([0-9]{2,2})', $sourceFormat);
|
|
|
|
$sourceFormat = str_replace('%Y', '([0-9]{4,4})', $sourceFormat);
|
|
|
|
|
|
|
|
/* Match the placeholders */
|
|
|
|
preg_match_all('/(%[a-zA-Z])/', $this->_sCustomSourceFormat, $placeholderRegs);
|
|
|
|
|
|
|
|
|
|
|
|
/* Match the date values */
|
|
|
|
preg_match('/' . $sourceFormat . '/', $value, $dateRegs);
|
|
|
|
|
|
|
|
$finalDate = array();
|
|
|
|
|
|
|
|
/* Map date entries to placeholders */
|
|
|
|
foreach ($placeholderRegs[0] as $key => $placeholderReg) {
|
|
|
|
if (isset($dateRegs[$key])) {
|
|
|
|
$finalDate[$placeholderReg] = $dateRegs[$key + 1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Assign placeholders + data to the object's member variables */
|
|
|
|
foreach ($finalDate as $placeHolder => $value) {
|
|
|
|
switch ($placeHolder) {
|
|
|
|
case "%d":
|
|
|
|
$this->_iDay = $value;
|
|
|
|
break;
|
|
|
|
case "%m":
|
|
|
|
$this->_iMonth = $value;
|
|
|
|
break;
|
|
|
|
case "%Y":
|
|
|
|
$this->_iYear = $value;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function get($iOverrideFormat = false) {
|
|
|
|
if ($iOverrideFormat !== false) {
|
|
|
|
$iFormat = $iOverrideFormat;
|
|
|
|
} else {
|
|
|
|
$iFormat = $this->_cSourceFormat;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch ($iFormat) {
|
|
|
|
case cDateTime_ISO:
|
|
|
|
$sTemporaryTimestamp = mktime($this->_iHour, $this->_iMinute, $this->_iSecond, $this->_iMonth, $this->_iDay, $this->_iYear);
|
|
|
|
return date("Y-m-d H:i:s", $sTemporaryTimestamp);
|
|
|
|
break;
|
|
|
|
case cDateTime_UNIX:
|
|
|
|
$sTemporaryTimestamp = mktime($this->_iHour, $this->_iMinute, $this->_iSecond, $this->_iMonth, $this->_iDay, $this->_iYear);
|
|
|
|
return ($sTemporaryTimestamp);
|
|
|
|
break;
|
|
|
|
case cDateTime_Custom:
|
|
|
|
return strftime($this->_sCustomSourceFormat, mktime($this->_iHour, $this->_iMinute, $this->_iSecond, $this->_iMonth, $this->_iDay, $this->_iYear));
|
|
|
|
break;
|
|
|
|
case cDateTime_MySQL:
|
|
|
|
$sTemporaryTimestamp = mktime($this->_iHour, $this->_iMinute, $this->_iSecond, $this->_iMonth, $this->_iDay, $this->_iYear);
|
|
|
|
return date("YmdHis", $sTemporaryTimestamp);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
cError(__FILE__, __LINE__, "Not supported yet");
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function render($iOverrideFormat = false) {
|
|
|
|
if ($iOverrideFormat !== false) {
|
|
|
|
$iFormat = $iOverrideFormat;
|
|
|
|
} else {
|
|
|
|
$iFormat = $this->_cTargetFormat;
|
|
|
|
}
|
|
|
|
|
|
|
|
switch ($iFormat) {
|
|
|
|
case cDateTime_Locale_TimeOnly:
|
|
|
|
$sTimeformat = getEffectiveSetting("backend", "timeformat_time", "H:i:s");
|
|
|
|
|
|
|
|
return date($sTimeformat, mktime($this->_iHour, $this->_iMinute, $this->iSecond, $this->_iMonth, $this->_iDay, $this->_iYear));
|
|
|
|
|
|
|
|
case cDateTime_Locale_DateOnly:
|
|
|
|
$sTimeformat = getEffectiveSetting("backend", "timeformat_date", "Y-m-d");
|
|
|
|
|
|
|
|
return date($sTimeformat, mktime($this->_iHour, $this->_iMinute, $this->iSecond, $this->_iMonth, $this->_iDay, $this->_iYear));
|
|
|
|
case cDateTime_Locale:
|
|
|
|
$sTimeformat = getEffectiveSetting("backend", "timeformat", "Y-m-d H:i:s");
|
|
|
|
|
|
|
|
return date($sTimeformat, mktime($this->_iHour, $this->_iMinute, $this->iSecond, $this->_iMonth, $this->_iDay, $this->_iYear));
|
|
|
|
case cDateTime_Custom:
|
|
|
|
return strftime($this->_sCustomTargetFormat, mktime($this->_iHour, $this->_iMinute, $this->_iSecond, $this->_iMonth, $this->_iDay, $this->_iYear));
|
|
|
|
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function parse($value) {
|
|
|
|
if ($value == "") {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
switch ($this->_cTargetFormat) {
|
|
|
|
case cDateTime_ISO:
|
|
|
|
$sTemporaryTimestamp = strtotime($value);
|
|
|
|
$this->_iYear = date("Y", $sTemporaryTimestamp);
|
|
|
|
$this->_iMonth = date("m", $sTemporaryTimestamp);
|
|
|
|
$this->_iDay = date("d", $sTemporaryTimestamp);
|
|
|
|
$this->_iHour = date("H", $sTemporaryTimestamp);
|
|
|
|
$this->_iMinute = date("i", $sTemporaryTimestamp);
|
|
|
|
$this->_iSecond = date("s", $sTemporaryTimestamp);
|
|
|
|
break;
|
|
|
|
case cDateTime_Locale_DateOnly:
|
|
|
|
$sTimeformat = getEffectiveSetting('backend', 'timeformat_date', 'Y-m-d');
|
|
|
|
|
|
|
|
$targetFormat = str_replace('.', '\.', $sTimeformat);
|
|
|
|
$targetFormat = str_replace('d', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('m', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('Y', '([0-9]{4,4})', $targetFormat);
|
|
|
|
|
|
|
|
/* Match the placeholders */
|
|
|
|
preg_match_all('/([a-zA-Z])/', $sTimeformat, $placeholderRegs);
|
|
|
|
|
|
|
|
/* Match the date values */
|
|
|
|
preg_match('/' . $targetFormat . '/', $value, $dateRegs);
|
|
|
|
|
|
|
|
$finalDate = array();
|
|
|
|
|
|
|
|
/* Map date entries to placeholders */
|
|
|
|
foreach ($placeholderRegs[0] as $key => $placeholderReg) {
|
|
|
|
if (isset($dateRegs[$key])) {
|
|
|
|
$finalDate[$placeholderReg] = $dateRegs[$key + 1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Assign placeholders + data to the object's member variables */
|
|
|
|
foreach ($finalDate as $placeHolder => $value) {
|
|
|
|
switch ($placeHolder) {
|
|
|
|
case "d":
|
|
|
|
$this->_iDay = $value;
|
|
|
|
break;
|
|
|
|
case "m":
|
|
|
|
$this->_iMonth = $value;
|
|
|
|
break;
|
|
|
|
case "Y":
|
|
|
|
$this->_iYear = $value;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
case cDateTime_Locale:
|
|
|
|
$sTimeformat = getEffectiveSetting('backend', 'timeformat', 'Y-m-d H:i:s');
|
|
|
|
|
|
|
|
$targetFormat = str_replace('.', '\.', $sTimeformat);
|
|
|
|
$targetFormat = str_replace('d', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('m', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('Y', '([0-9]{4,4})', $targetFormat);
|
|
|
|
|
|
|
|
/* Match the placeholders */
|
|
|
|
preg_match_all('/(%[a-zA-Z])/', $this->_sCustomTargetFormat, $placeholderRegs);
|
|
|
|
|
|
|
|
/* Match the date values */
|
|
|
|
preg_match('/' . $targetFormat . '/', $value, $dateRegs);
|
|
|
|
|
|
|
|
$finalDate = array();
|
|
|
|
|
|
|
|
/* Map date entries to placeholders */
|
|
|
|
foreach ($placeholderRegs[0] as $key => $placeholderReg) {
|
|
|
|
if (isset($dateRegs[$key])) {
|
|
|
|
$finalDate[$placeholderReg] = $dateRegs[$key + 1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Assign placeholders + data to the object's member variables */
|
|
|
|
foreach ($finalDate as $placeHolder => $value) {
|
|
|
|
switch ($placeHolder) {
|
|
|
|
case "%d":
|
|
|
|
$this->_iDay = $value;
|
|
|
|
break;
|
|
|
|
case "%m":
|
|
|
|
$this->_iMonth = $value;
|
|
|
|
break;
|
|
|
|
case "%Y":
|
|
|
|
$this->_iYear = $value;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
case cDateTime_Custom:
|
|
|
|
/* Build a regular expression */
|
|
|
|
|
|
|
|
$targetFormat = str_replace('.', '\.', $this->_sCustomTargetFormat);
|
|
|
|
$targetFormat = str_replace('%d', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('%m', '([0-9]{2,2})', $targetFormat);
|
|
|
|
$targetFormat = str_replace('%Y', '([0-9]{4,4})', $targetFormat);
|
|
|
|
|
|
|
|
/* Match the placeholders */
|
|
|
|
preg_match_all('/(%[a-zA-Z])/', $this->_sCustomTargetFormat, $placeholderRegs);
|
|
|
|
|
|
|
|
/* Match the date values */
|
|
|
|
preg_match('/' . $targetFormat . '/', $value, $dateRegs);
|
|
|
|
|
|
|
|
$finalDate = array();
|
|
|
|
|
|
|
|
/* Map date entries to placeholders */
|
|
|
|
foreach ($placeholderRegs[0] as $key => $placeholderReg) {
|
|
|
|
if (isset($dateRegs[$key])) {
|
|
|
|
$finalDate[$placeholderReg] = $dateRegs[$key + 1];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Assign placeholders + data to the object's member variables */
|
|
|
|
foreach ($finalDate as $placeHolder => $value) {
|
|
|
|
switch ($placeHolder) {
|
|
|
|
case "%d":
|
|
|
|
$this->_iDay = $value;
|
|
|
|
break;
|
|
|
|
case "%m":
|
|
|
|
$this->_iMonth = $value;
|
|
|
|
break;
|
|
|
|
case "%Y":
|
|
|
|
$this->_iYear = $value;
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-10-06 15:57:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
?>
|