PHP | Spreadsheet | Setting a date and/or time value in a cell

In PHP Spreadsheet, the date or time values are stored in an excel sheet in the form of timestamp which is a floating point value. So in order to store date/time in a human-readable format, need to calculate the correct excel timestamp and finally set a number format mask.

Example:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// PHP program to set a date time value in excel sheet
require_once('vendor/autoload.php');
  
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
   
// Creates New Spreadsheet
$spreadsheet = new Spreadsheet(); 
  
// Retrieve the current active worksheet
$sheet = $spreadsheet->getActiveSheet(); 
   
// Set the number format mask so that the excel timestamp 
// will be displayed as a human-readable date/time
$spreadsheet->getActiveSheet()->getStyle('A1')
    ->getNumberFormat()
    ->setFormatCode(
    \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME
    );
   
// Get current date and timestamp
// Convert to an Excel date/time
$dateTime = time(); 
$excelDateValue = \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(
                  $dateTime ); 
   
// Set cell A1 with the Formatted date/time value
$sheet->setCellValue('A1',$excelDateValue);
   
// Write an .xlsx file 
$writer = new Xlsx($spreadsheet);
  
// Save .xlsx file to the current directory
$writer->save('gfgdate.xlsx');
?>

chevron_right


Output:
datetime



Reference: https://phpspreadsheet.readthedocs.io/en/develop/topics/accessing-cells/



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.