Hola tengo un campo que en ocasiones esta vacio
este me devuelve con fecha de diciembre del 1969
cuando debería aparecerme en blanco como puedo hacer que solo aparezca los que tienen fechas y los que están con campos vacíos en blanco
<?php
date_default_timezone_set('America/Lima');
$calendario_meses = array(
'January'=>'Enero',
'Febuary'=>'Febrero',
'March'=>'Marzo',
'April'=>'Abril',
'May'=>'Mayo',
'June'=>'Junio',
'July'=>'Julio',
'August'=>'Agosto',
'September'=>'Septiembre',
'October'=>'Octubre',
'November'=>'Noviembre',
'December'=>'Diciembre'
);
$data = explode('-', $res['icr_fecha_revision2']);
$fecha = date('F \d\e\l Y', strtotime($data[0] . '-' . $data[1]));
$fecha = strtr($fecha, $calendario_meses);
echo $fecha;
?>
Hay una incongruencia en tu mensaje. Un campo vacío y que devuelve un valor de 'diciembre del 1969'. O lo explicas mejor o no se entiende nada...
En cualquier caso, valida tus variables:
if (isset($var))
if (var !== undefined)
Y en cada lenguaje lo validas respecto a su NULL, en .NET Nothing, etc..
Salu2
Mira, hace muchos años hice un framework en php y estas son dos funciones que validan fechas, talves te puedan servir para que hagas tu propio código y puedas decir que si la fecha es inválida entonces el valor es vacio, en caso contrario muestra la fecha formateada a conveniencia.
Saludos.
function isDate($buff = null) {
if ($buff === null)
$buff = $this->data;
if (!$buff = (string) $buff)
return false;
/* YYYY-MM-DD Standard ISO 8601 http://en.wikipedia.org/wiki/ISO_8601 */
if (!preg_match('/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/', $buff))
return false;
$date = date('Y-m-d', strtotime($buff));
if (substr($date, 0, 5) == '1970-')
return false;
return $date;
}
function isDateTime($buff = null) {
if ($buff === null)
$buff = $this->data;
if (!$buff = (string) $buff)
return false;
/* YYYY-MM-DD HH:MM:SS Standard ISO 8601 http://en.wikipedia.org/wiki/ISO_8601 */
if (!preg_match('/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) ([01][0-9]|2[0-4]):[0-5][0-9]:[0-5][0-9]$/', $buff))
return false;
$date = date('Y-m-d H:i:s', strtotime($buff));
if (substr($date, 0, 5) == '1970-')
return false;
return $date;
}