PHPExcel日期格式

PHPExcel日期格式,php,phpexcel,Php,Phpexcel,我正在从MS SQL server获取“2012-08-09 00:00:00”(不带引号)格式的输出 但是,当我将其写入excel文件时,我无法将其写入日期格式,以便在excel上使用dd-mmm-yyy格式 因此,我尝试将format=date(2012,08,09)作为公式写入各个单元格 但我不想将其输出为公式,而是数据类型完整性保持不变的值'09 Aug 2012'。我该怎么做?还是有更简单的方法 我通读了文件,但不清楚,我想我会要求澄清 问候 很抱歉没有说得足够详细 我正在使用PHP

我正在从MS SQL server获取“2012-08-09 00:00:00”(不带引号)格式的输出

但是,当我将其写入excel文件时,我无法将其写入日期格式,以便在excel上使用dd-mmm-yyy格式

因此,我尝试将format=date(2012,08,09)作为公式写入各个单元格

但我不想将其输出为公式,而是数据类型完整性保持不变的值'09 Aug 2012'。我该怎么做?还是有更简单的方法

我通读了文件,但不清楚,我想我会要求澄清

问候


很抱歉没有说得足够详细

我正在使用PHPExcel库

在我的sql数组中,我使用以下命令:

$t_year    = substr($xls_column_datas["colname"],0,4);
$t_month   = substr($xls_column_datas["colname"],5,2);
$t_day     = substr($xls_column_datas["colname"],8,2);
$t_format  = $t_year . "," . $t_month . "," . $t_day ;
$t_format  = '=date('.$t_format.')';

$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($data_column_num, $data_row_num, $t_format );
$objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($data_column_num, $data_row_num)->getNumberFormat()->setFormatCode('[$-C09]d mmm yyyy;@');
在我的excel输出中,它显示A2列,例如=日期(2012,8,9)

我希望excel能够识别“2012-08-09 00:00:00”是一个日期时间,并将其格式化为dd-mmm-yyyy,而不是显示为一个公式


这清楚了吗?抱歉。

虽然不清楚您在问什么,但如果您正在寻找日期转换

 // convert old date string to YYYYmmdd format
    $date = date('d M Y', strtotime($old_date));

这将以2012年8月9日的格式输出日期

为什么不让服务器为您更改格式?使用此查询设置日期的格式

SELECT convert(varchar(15), getdate(), 106) 
这将导致2012年9月11日


从MS SQL获取日期作为日期/时间,或设置Excel日期时,您是否遇到问题

PHPExcel文档有一整节解释了
PHPExcel\u共享\u日期::PHPToExcel($PHPDate)
PHPExcel\u共享\u日期::FormattedPHPToExcel($year、$month、$day、$hours=0、$minutes=0、$seconds=0)的使用
helper方法,用于将PHP日期转换为Excel日期时间戳值,将其设置为单元格值,然后将其中一个日期掩码的数字格式掩码(如
PHPExcel\u Style\u NumberFormat::format\u date\u yyyyymmd2)应用于该单元格

而不是

$t_year     = substr($xls_column_datas["colname"],0,4);    
$t_month    = substr($xls_column_datas["colname"],5,2);    
$t_day      = substr($xls_column_datas["colname"],8,2);
$t_format   = '=date('.$t_format.')';
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($data_column_num, $data_row_num, $t_format );
$objPHPExcel->getActiveSheet()->getStyleByColumnAndRow($data_column_num, $data_row_num)->getNumberFormat()->setFormatCode('[$-C09]d mmm yyyy;@');
尝试设置

$t_year   = substr($xls_column_datas["colname"],0,4);
$t_month  = substr($xls_column_datas["colname"],4,2);  // Fixed problems with offsets
$t_day    = substr($xls_column_datas["colname"],6,2);
$t_date   = PHPExcel_Shared_Date::FormattedPHPToExcel($t_year, $t_month, $t_day);
$objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(
    $data_column_num, $data_row_num, $t_date 
);
$objPHPExcel->getActiveSheet()
    ->getStyleByColumnAndRow($data_column_num, $data_row_num)
    ->getNumberFormat()->setFormatCode(
        PHPExcel_Style_NumberFormat::FORMAT_DATE_XLSX14
    );

请参阅此链接,它可能有助于您Мццццццц[1]Сццццццццццццццц1094。但是PHPExcel中也有单元格的日期格式,但没有getDateFormat()函数。我不明白。可能是因为我在开放式办公室看到的?与开放式办公室的开放无关
PHPExcel\u Style\u NumberFormat::FORMAT\u DATE\u XLSX14
是此代码示例中设置的格式,它不是数字格式,而是日期格式我有几乎相同的代码
$list->setCellValueByColumnRow(+$column,$row,\PHPExcel\u Shared\u DATE::PHPToExcel($survey->task->closed)->getStyle()->getNumberFormat()->setFormatCode(\PHPExcel\u Style\u NumberFormat::FORMAT\u DATE\u DDMMYYYY)但看起来和我以前写的一样?问问题-一个适当的问题,显示适当的代码,而不是简单地对其他人的问题的答案进行评论-我会看看。。。。。但也许不要尝试从setCellValue()中设置getStyle()。。。。使用两个单独的语句
$date = PHPExcel_Style_NumberFormat::toFormattedString($data, "M/D/YYYY");