[Pkg-owncloud-commits] [php-sabre-vobject] 38/65: add support for milliseconds in DateTimeParser::parseVCardDateTime

David Prévot taffit at moszumanska.debian.org
Tue Feb 24 23:57:16 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository php-sabre-vobject.

commit bad08df316d278a3123a8efed3b09e5b632cf8aa
Author: Armin Hackmann <armin at fruux.com>
Date:   Thu Feb 5 12:27:20 2015 +0100

    add support for milliseconds in DateTimeParser::parseVCardDateTime
---
 lib/DateTimeParser.php               |  4 ++-
 tests/VObject/DateTimeParserTest.php | 48 +++++++++++++++++++++++++++++++++++-
 2 files changed, 50 insertions(+), 2 deletions(-)

diff --git a/lib/DateTimeParser.php b/lib/DateTimeParser.php
index c678575..f6e9c20 100644
--- a/lib/DateTimeParser.php
+++ b/lib/DateTimeParser.php
@@ -260,6 +260,7 @@ class DateTimeParser {
                 (?P<minute> [0-9]{2} | -)?
                 (?P<second> [0-9]{2})?
 
+                (?: \.(?P<millisecond> [0-9]{3}))?
                 (?P<timezone> # timezone offset
 
                     Z | (?: \+|-)(?: [0-9]{4})
@@ -269,7 +270,6 @@ class DateTimeParser {
             )?
             $/x';
 
-
         if (!preg_match($regex, $date, $matches)) {
 
             // Attempting to parse the extended format.
@@ -285,6 +285,7 @@ class DateTimeParser {
                     (?: (?P<minute> [0-9]{2}) : | -)?
                     (?P<second> [0-9]{2})?
 
+                    (?: \.(?P<millisecond> [0-9]{3}))?
                     (?P<timezone> # timezone offset
 
                         Z | (?: \+|-)(?: [0-9]{2}:[0-9]{2})
@@ -306,6 +307,7 @@ class DateTimeParser {
             'hour',
             'minute',
             'second',
+            'millisecond',
             'timezone'
         );
 
diff --git a/tests/VObject/DateTimeParserTest.php b/tests/VObject/DateTimeParserTest.php
index f4ae42d..03e9836 100644
--- a/tests/VObject/DateTimeParserTest.php
+++ b/tests/VObject/DateTimeParserTest.php
@@ -196,6 +196,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => 14,
                     "minute" => 00,
                     "second" => 00,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -208,6 +209,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => 14,
                     "minute" => 00,
                     "second" => null,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -220,6 +222,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => 14,
                     "minute" => null,
                     "second" => null,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -232,6 +235,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => null,
                     "minute" => null,
                     "second" => null,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -244,6 +248,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => null,
                     "minute" => null,
                     "second" => null,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -256,6 +261,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => null,
                     "minute" => null,
                     "second" => null,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -268,6 +274,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => null,
                     "minute" => null,
                     "second" => null,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -280,6 +287,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => null,
                     "minute" => null,
                     "second" => null,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -292,6 +300,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => 10,
                     "minute" => 22,
                     "second" => 0,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -304,6 +313,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => 10,
                     "minute" => 22,
                     "second" => null,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -316,6 +326,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => 10,
                     "minute" => null,
                     "second" => null,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -328,6 +339,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => null,
                     "minute" => 22,
                     "second" => 00,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -340,6 +352,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => null,
                     "minute" => null,
                     "second" => 00,
+                    "millisecond" => null,
                     "timezone" => null
                 ),
             ),
@@ -352,6 +365,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => 10,
                     "minute" => 22,
                     "second" => 00,
+                    "millisecond" => null,
                     "timezone" => 'Z'
                 ),
             ),
@@ -364,6 +378,7 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => 10,
                     "minute" => 22,
                     "second" => 00,
+                    "millisecond" => null,
                     "timezone" => '-0800'
                 ),
             ),
@@ -378,12 +393,43 @@ class DateTimeParserTest extends \PHPUnit_Framework_TestCase {
                     "hour" => 15,
                     "minute" => 10,
                     "second" => 53,
+                    "millisecond" => null,
                     "timezone" => 'Z'
                 ),
             ),
+
+            // with milliseconds
+            array(
+                "20121129T151053.123Z",
+                array(
+                    "year" => 2012,
+                    "month" => 11,
+                    "date" => 29,
+                    "hour" => 15,
+                    "minute" => 10,
+                    "second" => 53,
+                    "millisecond" => 123,
+                    "timezone" => 'Z'
+                ),
+            ),
+
+            // extended format with milliseconds
+            array(
+                "2012-11-29T15:10:53.123Z",
+                array(
+                    "year" => 2012,
+                    "month" => 11,
+                    "date" => 29,
+                    "hour" => 15,
+                    "minute" => 10,
+                    "second" => 53,
+                    "millisecond" => 123,
+                    "timezone" => 'Z'
+                ),
+            ),
+
         );
 
     }
 
-
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/php-sabre-vobject.git



More information about the Pkg-owncloud-commits mailing list