mirror of https://github.com/php/php-src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
6.7 KiB
197 lines
6.7 KiB
--TEST--
|
|
Tests for DateTime[Immutable]::[get|set]Microseconds
|
|
--FILE--
|
|
<?php
|
|
|
|
class MyDateTime extends DateTime {};
|
|
class MyDateTimeImmutable extends DateTimeImmutable {};
|
|
|
|
$microsecondsList = array(
|
|
0,
|
|
999999,
|
|
-1,
|
|
1000000
|
|
);
|
|
|
|
$dt = new DateTime('2023-04-05T06:07:08.901234+00:00');
|
|
$dti = new DateTimeImmutable('2023-04-05T06:07:08.901234+00:00');
|
|
$myDt = new MyDateTime('2023-04-05T06:07:08.901234+00:00');
|
|
$myDti = new MyDateTimeImmutable('2023-04-05T06:07:08.901234+00:00');
|
|
|
|
echo 'DateTime::getMicroseconds(): ' . var_export($dt->getMicroseconds(), true) . "\n";
|
|
var_dump($dt);
|
|
|
|
echo 'DateTimeImmutable::getMicroseconds(): ' . var_export($dti->getMicroseconds(), true) . "\n";
|
|
var_dump($dti);
|
|
|
|
echo 'MyDateTime::getMicroseconds(): ' . var_export($myDt->getMicroseconds(), true) . "\n";
|
|
var_dump($myDt);
|
|
|
|
echo 'MyDateTimeImmutable::getMicroseconds(): ' . var_export($myDti->getMicroseconds(), true) . "\n";
|
|
var_dump($myDti);
|
|
|
|
foreach ($microsecondsList as $microseconds) {
|
|
echo "##################################\n";
|
|
|
|
echo 'DateTime::setMicroseconds('.var_export($microseconds, true).'): ';
|
|
try {
|
|
var_dump($dt->setMicroseconds($microseconds));
|
|
} catch (Throwable $e) {
|
|
echo get_class($e) . ': ' . $e->getMessage() . "\n";
|
|
}
|
|
echo 'DateTime::getMicroseconds(): ' . var_export($dt->getMicroseconds(), true) . "\n";
|
|
|
|
echo 'DateTimeImmutable::setMicroseconds('.var_export($microseconds, true).'): ';
|
|
try {
|
|
var_dump($dti->setMicroseconds($microseconds));
|
|
} catch (Throwable $e) {
|
|
echo get_class($e) . ': ' . $e->getMessage() . "\n";
|
|
}
|
|
echo 'DateTimeImmutable::getMicroseconds(): ' . var_export($dti->getMicroseconds(), true) . "\n";
|
|
|
|
echo 'MyDateTime::setMicroseconds('.var_export($microseconds, true).'): ';
|
|
try {
|
|
var_dump($myDt->setMicroseconds($microseconds));
|
|
} catch (Throwable $e) {
|
|
echo get_class($e) . ': ' . $e->getMessage() . "\n";
|
|
}
|
|
echo 'MyDateTime::getMicroseconds(): ' . var_export($myDt->getMicroseconds(), true) . "\n";
|
|
|
|
echo 'MyDateTimeImmutable::setMicroseconds('.var_export($microseconds, true).'): ';
|
|
try {
|
|
var_dump($myDti->setMicroseconds($microseconds));
|
|
} catch (Throwable $e) {
|
|
echo get_class($e) . ': ' . $e->getMessage() . "\n";
|
|
}
|
|
echo 'MyDateTimeImmutable::getMicroseconds(): ' . var_export($myDti->getMicroseconds(), true) . "\n";
|
|
}
|
|
?>
|
|
--EXPECTF--
|
|
DateTime::getMicroseconds(): 901234
|
|
object(DateTime)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.901234"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
DateTimeImmutable::getMicroseconds(): 901234
|
|
object(DateTimeImmutable)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.901234"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
MyDateTime::getMicroseconds(): 901234
|
|
object(MyDateTime)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.901234"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
MyDateTimeImmutable::getMicroseconds(): 901234
|
|
object(MyDateTimeImmutable)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.901234"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
##################################
|
|
DateTime::setMicroseconds(0): object(DateTime)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.000000"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
DateTime::getMicroseconds(): 0
|
|
DateTimeImmutable::setMicroseconds(0): object(DateTimeImmutable)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.000000"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
DateTimeImmutable::getMicroseconds(): 901234
|
|
MyDateTime::setMicroseconds(0): object(MyDateTime)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.000000"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
MyDateTime::getMicroseconds(): 0
|
|
MyDateTimeImmutable::setMicroseconds(0): object(MyDateTimeImmutable)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.000000"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
MyDateTimeImmutable::getMicroseconds(): 901234
|
|
##################################
|
|
DateTime::setMicroseconds(999999): object(DateTime)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.999999"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
DateTime::getMicroseconds(): 999999
|
|
DateTimeImmutable::setMicroseconds(999999): object(DateTimeImmutable)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.999999"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
DateTimeImmutable::getMicroseconds(): 901234
|
|
MyDateTime::setMicroseconds(999999): object(MyDateTime)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.999999"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
MyDateTime::getMicroseconds(): 999999
|
|
MyDateTimeImmutable::setMicroseconds(999999): object(MyDateTimeImmutable)#%d (3) {
|
|
["date"]=>
|
|
string(26) "2023-04-05 06:07:08.999999"
|
|
["timezone_type"]=>
|
|
int(1)
|
|
["timezone"]=>
|
|
string(6) "+00:00"
|
|
}
|
|
MyDateTimeImmutable::getMicroseconds(): 901234
|
|
##################################
|
|
DateTime::setMicroseconds(-1): DateRangeError: DateTime::setMicroseconds(): Argument #1 ($microseconds) must be between 0 and 999999, -1 given
|
|
DateTime::getMicroseconds(): 999999
|
|
DateTimeImmutable::setMicroseconds(-1): DateRangeError: DateTimeImmutable::setMicroseconds(): Argument #1 ($microseconds) must be between 0 and 999999, -1 given
|
|
DateTimeImmutable::getMicroseconds(): 901234
|
|
MyDateTime::setMicroseconds(-1): DateRangeError: DateTime::setMicroseconds(): Argument #1 ($microseconds) must be between 0 and 999999, -1 given
|
|
MyDateTime::getMicroseconds(): 999999
|
|
MyDateTimeImmutable::setMicroseconds(-1): DateRangeError: DateTimeImmutable::setMicroseconds(): Argument #1 ($microseconds) must be between 0 and 999999, -1 given
|
|
MyDateTimeImmutable::getMicroseconds(): 901234
|
|
##################################
|
|
DateTime::setMicroseconds(1000000): DateRangeError: DateTime::setMicroseconds(): Argument #1 ($microseconds) must be between 0 and 999999, 1000000 given
|
|
DateTime::getMicroseconds(): 999999
|
|
DateTimeImmutable::setMicroseconds(1000000): DateRangeError: DateTimeImmutable::setMicroseconds(): Argument #1 ($microseconds) must be between 0 and 999999, 1000000 given
|
|
DateTimeImmutable::getMicroseconds(): 901234
|
|
MyDateTime::setMicroseconds(1000000): DateRangeError: DateTime::setMicroseconds(): Argument #1 ($microseconds) must be between 0 and 999999, 1000000 given
|
|
MyDateTime::getMicroseconds(): 999999
|
|
MyDateTimeImmutable::setMicroseconds(1000000): DateRangeError: DateTimeImmutable::setMicroseconds(): Argument #1 ($microseconds) must be between 0 and 999999, 1000000 given
|
|
MyDateTimeImmutable::getMicroseconds(): 901234
|