Magento – Uso de Zend_date para tratar valores datetime y time.

Inicio MagentoMagento – Uso de Zend_date para tratar valores datetime y time.
mage+zend+php

Magento – Uso de Zend_date para tratar valores datetime y time.

No Comments

Es probable que al realizar nuestros módulos, tengamos que trabajar con campos date y time en formularios de la parte de administración. Os recomendamos utilizar Zend_date para este propósito debido a la flexibilidad que proporciona. Os adjuntamos diferentes funciones basadas en el uso de Zend_date que nos han sido de gran ayuda!

/**
 * functions_zend_data.php :  transformación de campos time y datetime.
 */
 
/**
 * function diffSeconds: devuelve los segundos de diferencia entre dos campos datetime.
 *
 * $dateTime1 datetime
 * $dateTime2 datetime
 *
 * @return integer
 */
public function diffSeconds($dateTime1,$dateTime2) 
{
        //*** Datetime in Zend Format
	$localdatetime1 = new Zend_Date(); 
	$localdatetime2 = new Zend_Date();
	$localdatetime1->set($dateTime1, Zend_Date::DATETIME);
	$localdatetime2->set($dateTime2, Zend_Date::DATETIME);
 
	//*** Obtenemos la diferencia en formato segundos.
        $interval = $localdatetime1->sub($localdatetime2);
	$measure = new Zend_Measure_Time($interval->toValue(), Zend_Measure_Time::SECOND);
	return $measure->getValue();
 
}
 
 
/**
 * function secondsToTime: transforma un valor en segundos en un valor time (HH:mm:ss).
 *
 * $totSeconds int
 * @return string
 */
public function secondsToTime($totSeconds) 
{
 
	//>>> Calculamos los valores de horas, minutos y segundos.
        $seconds = $totSeconds % 60; 
	$totMinutes = ($totSeconds - $seconds) / 60;
	$minutes = $totMinutes % 60; 
	$totHours = ($totMinutes - $minutes) / 60;
	$hours =  $totHours % 24; 
 
 
	return ($hours > 0 ? $hours . ":" : "00:").($minutes > 0 ? $minutes . ":" : "00:") . $seconds;
 
}
 
/**
 * function timeToString: Prepara un valor time para mostrarlos en un campo time ($fieldset->addField) de un admin form de Magento
 *
 * $timefield time
 * @return string
 */
public function timeToString($timefield) 
{	
	return (string) substr($timefield,0,2).','.substr($timefield,3,2).','.substr($timefield,6,2);		
}
 
/**
 * function getCurrentDateTime: Devuelve el valor actual de fecha - hora (datetime).
 *
 * @return string
 */
public function getCurrentDateTime() 
{
	$localDate = new Zend_Date();
	return (string) $localDate->toString(Zend_Date::DATETIME);
}
 
 
/**
 * function getCurrentTime: Devuelve el valor actual de hora (time).
 *
 * @return string
 */
public function getCurrentTime() 
{
	$date = new Zend_Date();
	return (string) $date->toString(Zend_Date::TIMES);
}
 
/**
 * function getWeekDay: Devuelve el nombre del actual día.
 *
 * @return string
 */
public function getWeekDay() 
{
	$date = new Zend_Date();
	$day = $date->toString(Zend_Date::WEEKDAY_8601);
 
	switch ($day) {
	   	case '0':
			 return (string)'Sunday';
			 break;
		case '1':
			 return (string)'Monday';
			 break;
		case '2':
			 return (string)'Tuesday';
			 break;
		case '3':
		         return (string)'Wednesday';
		         break;
		case '4':
		         return (string)'Thursday';
		         break;
		case '5':
	   	         return (string)'Friday';
		         break;
		case '6':
		         return (string)'Saturday';
		         break;
		default:
			 return (string)'Nothing';
	  	         break;
	}
 
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *