Saltar al contenido

¿Cómo recuperar la fecha de la celda de la tabla usando PhpSpreadsheet?

Esta es la solución más correcta que te podemos compartir, pero obsérvala pausadamente y analiza si se puede adaptar a tu proyecto.

Solución:

El valor es la cantidad de días transcurridos desde 1900. Puede usar las funciones integradas de PhpSpreadsheet para convertirlo en una marca de tiempo de Unix:

$value = $worksheet->getCell('A1')->getValue();
$date = PhpOfficePhpSpreadsheetSharedDate::excelToTimestamp($value);

O a un PHP DateTime objeto:

$value = $worksheet->getCell('A1')->getValue();
$date = PhpOfficePhpSpreadsheetSharedDate::excelToDateTimeObject($value);

Cuando estamos iterando con $row->getCellIterator() o podemos tener otros tipos de valor, podría ser útil usar getFormattedValue en su lugar

durante el uso getValue()

  • Nombre completo: Jane Doe => “Jane Doe”
  • Fecha de nacimiento: 18/11/2000 => 36848.0

durante el uso getFormattedValue()

  • Nombre completo: Jane Doe => “Jane Doe”
  • Fecha de nacimiento: 18/11/2000 => “18/11/2000”

Como no puedo agregar comentarios, solo agregue una respuesta para futuros usuarios. puede convertir una marca de tiempo de Excel a una marca de tiempo de Unix usando el siguiente código (de la respuesta aceptada)

 $value = $worksheet->getCell('A1')->getValue();
 $date = PhpOfficePhpSpreadsheetSharedDate::excelToTimestamp($value);

Y puede determinar si la celda dada es Fecha Hora usando PhpOfficePhpSpreadsheetSharedDate::isDateTime($cell) función.

Nos puedes patrocinar nuestro análisis ejecutando un comentario y puntuándolo te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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