Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
D
doctrine-dbal
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Tomáš Trávníček
doctrine-dbal
Commits
71585348
Commit
71585348
authored
Jul 16, 2015
by
Valentinas Bartusevičius
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed regex. DateInterval now stored as P0002-00-01T01:02:03
parent
30ca3a42
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
6 additions
and
10 deletions
+6
-10
DateIntervalType.php
lib/Doctrine/DBAL/Types/DateIntervalType.php
+4
-8
DateIntervalTest.php
tests/Doctrine/Tests/DBAL/Types/DateIntervalTest.php
+2
-2
No files found.
lib/Doctrine/DBAL/Types/DateIntervalType.php
View file @
71585348
...
@@ -9,8 +9,6 @@ use Doctrine\DBAL\Platforms\AbstractPlatform;
...
@@ -9,8 +9,6 @@ use Doctrine\DBAL\Platforms\AbstractPlatform;
*/
*/
class
DateIntervalType
extends
Type
class
DateIntervalType
extends
Type
{
{
const
DATEINTERVAL_PATTERN
=
'#(?P<date>\d{4}-\d{2}-\d{2}).(?P<time>\d{2}:\d{2}:\d{2})#'
;
/**
/**
* {@inheritdoc}
* {@inheritdoc}
*/
*/
...
@@ -35,9 +33,10 @@ class DateIntervalType extends Type
...
@@ -35,9 +33,10 @@ class DateIntervalType extends Type
$spec
=
null
;
$spec
=
null
;
if
(
$value
!==
null
)
{
if
(
$value
!==
null
)
{
/** @var \DateInterval $value */
/** @var \DateInterval $value */
$spec
=
str_pad
(
$value
->
y
,
4
,
'0'
,
STR_PAD_LEFT
)
.
'-'
$spec
=
'P'
.
str_pad
(
$value
->
y
,
4
,
'0'
,
STR_PAD_LEFT
)
.
'-'
.
$value
->
format
(
'%M'
)
.
'-'
.
$value
->
format
(
'%M'
)
.
'-'
.
$value
->
format
(
'%D'
)
.
'
'
.
$value
->
format
(
'%D'
)
.
'
T
'
.
$value
->
format
(
'%H'
)
.
':'
.
$value
->
format
(
'%H'
)
.
':'
.
$value
->
format
(
'%I'
)
.
':'
.
$value
->
format
(
'%I'
)
.
':'
.
$value
->
format
(
'%S'
)
.
$value
->
format
(
'%S'
)
...
@@ -56,11 +55,8 @@ class DateIntervalType extends Type
...
@@ -56,11 +55,8 @@ class DateIntervalType extends Type
return
$value
;
return
$value
;
}
}
if
(
preg_match
(
self
::
DATEINTERVAL_PATTERN
,
$value
,
$parts
)
!==
1
)
{
throw
ConversionException
::
conversionFailedFormat
(
$value
,
$this
->
getName
(),
'Y-m-d H:i:s'
);
}
try
{
try
{
$interval
=
new
\DateInterval
(
'P'
.
$parts
[
'date'
]
.
'T'
.
$parts
[
'time'
]
);
$interval
=
new
\DateInterval
(
$value
);
}
catch
(
\Exception
$e
)
{
}
catch
(
\Exception
$e
)
{
throw
ConversionException
::
conversionFailedFormat
(
$value
,
$this
->
getName
(),
'PY-m-dTH:i:s'
);
throw
ConversionException
::
conversionFailedFormat
(
$value
,
$this
->
getName
(),
'PY-m-dTH:i:s'
);
...
...
tests/Doctrine/Tests/DBAL/Types/DateIntervalTest.php
View file @
71585348
...
@@ -21,7 +21,7 @@ class DateIntervalTest extends \Doctrine\Tests\DbalTestCase
...
@@ -21,7 +21,7 @@ class DateIntervalTest extends \Doctrine\Tests\DbalTestCase
{
{
$interval
=
new
\DateInterval
(
'P2Y1DT1H2M3S'
);
$interval
=
new
\DateInterval
(
'P2Y1DT1H2M3S'
);
$expected
=
'
0002-00-01
01:02:03'
;
$expected
=
'
P0002-00-01T
01:02:03'
;
$actual
=
$this
->
_type
->
convertToDatabaseValue
(
$interval
,
$this
->
_platform
);
$actual
=
$this
->
_type
->
convertToDatabaseValue
(
$interval
,
$this
->
_platform
);
$this
->
assertEquals
(
$expected
,
$actual
);
$this
->
assertEquals
(
$expected
,
$actual
);
...
@@ -29,7 +29,7 @@ class DateIntervalTest extends \Doctrine\Tests\DbalTestCase
...
@@ -29,7 +29,7 @@ class DateIntervalTest extends \Doctrine\Tests\DbalTestCase
public
function
testDateIntervalConvertsToPHPValue
()
public
function
testDateIntervalConvertsToPHPValue
()
{
{
$date
=
$this
->
_type
->
convertToPHPValue
(
'
0002-00-01
01:02:03'
,
$this
->
_platform
);
$date
=
$this
->
_type
->
convertToPHPValue
(
'
P0002-00-01T
01:02:03'
,
$this
->
_platform
);
$this
->
assertInstanceOf
(
'DateInterval'
,
$date
);
$this
->
assertInstanceOf
(
'DateInterval'
,
$date
);
$this
->
assertEquals
(
'P2Y0M1DT1H2M3S'
,
$date
->
format
(
'P%yY%mM%dDT%hH%iM%sS'
));
$this
->
assertEquals
(
'P2Y0M1DT1H2M3S'
,
$date
->
format
(
'P%yY%mM%dDT%hH%iM%sS'
));
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment