Option to return formatted dates instead of PHP objects (#226)
When reading spreadsheets, Spout should be able to return formatted dates, as shown when opened with Excel for instance. It currently only returns DateTime/DateInterval objects, making it impossible to read + write, as the Writer does not accept objects.
This commit is contained in:
1 parent
a6a6b158de
commit
104cd9b811
21 files changed
+389
-51
No files matched your search
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace Box\Spout\Reader\XLSX\Helper;
|
||||
|
||||
/**
|
||||
* Class DateFormatHelperTest
|
||||
*
|
||||
* @package Box\Spout\Reader\XLSX\Helper
|
||||
*/
|
||||
class DateFormatHelperTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function dataProviderForTestToPHPDateFormat()
|
||||
{
|
||||
return [
|
||||
// Excel date format, expected PHP date format
|
||||
['m/d/yy hh:mm', 'n/j/y H:i'],
|
||||
['mmm-yy', 'M-y'],
|
||||
['d-mmm-yy', 'j-M-y'],
|
||||
['m/dd/yyyy', 'n/d/Y'],
|
||||
['e mmmmm dddd', 'Y M l'],
|
||||
['MMMM DDD', 'F D'],
|
||||
['hh:mm:ss.s', 'H:i:s'],
|
||||
['h:mm:ss AM/PM', 'g:i:s A'],
|
||||
['hh:mm AM/PM', 'h:i A'],
|
||||
['[$-409]hh:mm AM/PM', 'h:i A'],
|
||||
['[$USD-F480]hh:mm AM/PM', 'h:i A'],
|
||||
['"Day " d', '\\D\\a\\y\\ j'],
|
||||
['yy "Year" m "Month"', 'y \\Y\\e\\a\\r n \\M\\o\\n\\t\\h'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataProviderForTestToPHPDateFormat
|
||||
*
|
||||
* @param string $excelDateFormat
|
||||
* @param string $expectedPHPDateFormat
|
||||
* @return void
|
||||
*/
|
||||
public function testToPHPDateFormat($excelDateFormat, $expectedPHPDateFormat)
|
||||
{
|
||||
$phpDateFormat = DateFormatHelper::toPHPDateFormat($excelDateFormat);
|
||||
$this->assertEquals($expectedPHPDateFormat, $phpDateFormat);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user