【发布时间】:2016-08-13 13:38:38
【问题描述】:
我需要将日期保存到 Excel 文件中,它必须以“dd/mm/yyyy”格式(或用户的本地日期格式)输出,并被视为日期,以便它们的一列可以正确排序。
代码如下:
<?php
include_once("../PHPExcel/Classes/PHPExcel.php");
date_default_timezone_set('Europe/London');
$objPHPExcel = new PHPExcel();
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
PHPExcel_Settings::setCacheStorageMethod($cacheMethod);
$objPHPExcel = new PHPExcel();
$sheet = $objPHPExcel->getActiveSheet();
PHPExcel_Shared_Font::setAutoSizeMethod(PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT);
//I didn't find dd/mm/yyyy format, so I used yyyy-mm-dd
$sheet->setCellValueByColumnAndRow(0, 1, "2014-10-16");
$sheet->getStyleByColumnAndRow(0, 1)
->getNumberFormat()->setFormatCode(
PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2
);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save("test.xlsx");
它创建了一个文件,但我看到的不是本地日期格式:“2014-10-16”,单元格的格式是“所有格式”->“yyyy-mm-dd”。我希望以我的本地日期格式对其进行解析和输出。
查看PHPExcel/Classes/PHPExcel/Style/NumberFormat.php的源码,发现很多日期格式:
const FORMAT_DATE_YYYYMMDD2 = 'yyyy-mm-dd';
const FORMAT_DATE_YYYYMMDD = 'yy-mm-dd';
const FORMAT_DATE_DDMMYYYY = 'dd/mm/yy';
const FORMAT_DATE_DMYSLASH = 'd/m/y';
const FORMAT_DATE_DMYMINUS = 'd-m-y';
...
但我不确定该使用什么。我怎样才能达到预期的目标?
【问题讨论】:
标签: php date formatting phpexcel