Open In App

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

Improve
Improve
Like Article
Like
Save
Share
Report

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:




<?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');
?>


Output:
datetime


Last Updated : 07 Mar, 2024
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads