date_create_immutable


php apg

RETURNS a new DateTimeImmutable object.



<?php

/* - - - - - - - - - - - - - - - - -

    Object oriented style
   
   - - - - - - - - - - - - - - - - - */

public DateTimeImmutable::__construct str $datetime "now" 
                                       
DateTimeZone|null $timezone null )


where,

$datetime A date/time STRING according the Date and Time Formats  

$timezone 
A DateTimeImmutable object representing the TIMEZONE 

?>

<?php

/* - - - - - - - - - - - - - - - - -

      Procedural style
   
   - - - - - - - - - - - - - - - - - */

DateTimeImmutable|false date_create_immutable str $datetime "now" 
                                                       
DateTimeZone|null $timezone null )


where,

$datetime A date/time STRING according the Date and Time Formats  

$timezone 
A DateTimeImmutable object representing the TIMEZONE 

?>

 $datetime 


STRING representing the date/time according the Date and Time Formats.



 $timezone 


A DateTimeImmutable object representing the TimeZone.





This function works like DateTime::__construct  but works with DateTimeImmutable.



  1 EXERCISE   

<?php

$obj01 
date_create_immutable('Invalid');

var_dump($obj01);

?> 

  2 EXERCISE   

<?php

$tz 
= new DateTimeZone("Asia/Tokyo");
$current "now";

echo 
"getTimezone():<br><br>";
$v date_create_immutable($current);
$x $v->getTimezone();
var_dump($x->getName());

echo 
"<br><br>getTimestamp():<br><br>";
$v date_create_immutable($current);
$x $v->getTimestamp();
var_dump($x);

?>

  3 EXERCISE   

<?php

$nw_tz03 
= new DateTimeZone('America/New_York');

$nw_dt03 '2005-03-08 08:33:33';

$obj03 = (array) date_create_immutable($nw_dt03$nw_tz03);
// convert object to array 

echo 'print_r($obj03):<br>';

print_r($obj03);

echo 
'<br><br>';

foreach(
$obj03 as $k03 => $v03)

echo 
"[$k03] => $v03<br>";

?> 

  4 EXERCISE   

<?php

$nw_tz04 
= new DateTimeZONE('Africa/Nairobi');

$nw_dt04 'now';

$obj04 = (array) date_create_immutable($nw_dt04$nw_tz04);
// convert object to array

echo 'print_r($obj04):<br>';

print_r($obj04);

echo 
'<br><br>';

foreach(
$obj04 as $k04 => $v04)

echo 
"[$k04] => $v04<br>";

?> 

  5 EXERCISE   

 <?php

$dtm051 
= new DateTimeImmutable('UTC');
$dtz051 = new DateTimeZone('UTC');
$str051 '2013-05-08 08:33:33';

echo 
'public __construct:<br>';
$dtm051->__construct($str051$dtz051);
echo 
'$dtm051->__construct($str051, $dtz051)';
echo 
'<br><br>public string format:<br>';
$str051_frmt $dtm051->format(DATE_W3C);
echo 
$str051_frmt;

echo 
'<br><br>NOW<br><br>public __construct:<br>';
$dtm051->__construct("now"$dtz051);
echo 
'$dtm051->__construct("now", $dtz051)';
echo 
'<br><br>public string format:<br>';
$str051_frmt $dtm051->format(DATE_W3C);
echo 
$str051_frmt;

?> 

  6 EXERCISE   

<?php

$dtm061 
= new DateTimeImmutable('UTC');
$dtz061 = new DateTimeZone('UTC');
$str061 '2013-05-08 08:33:33';

echo 
'public __construct:<br>';
$dtm061->__construct($str061$dtz061);
echo 
'$dtm061->__construct($str061, $dtz061)';
echo 
'<br><br>public string format:<br>';
$str061_frmt $dtm061->format(DATE_W3C);
echo 
$str061_frmt;

$dtz062 = new DateTimeZone('America/Sao_Paulo');

echo 
'<br><br><br><br>public __construct:<br>';
$dtm061->__construct("now"$dtz062);
echo 
'$dtm061->__construct("now", $dtz062)';
echo 
'<br><br>public string format:<br>';
$str061_frmt $dtm061->format(DATE_W3C);
echo 
$str061_frmt;

?> 

  7 EXERCISE   

 <?php

$dtm071 
= new DateTimeImmutable('America/Sao_Paulo');
$dtz071 = new DateTimeZone('America/Sao_Paulo');
$str071 '2012-06-05 21:00:00';

$dtm071->__construct($str071$dtz071);

echo 
'<br>IPV6 PROTOCOL<br>INITIAL DATE OF OPERATION IN BRAZIL:<br>';
$str071_frmt $dtm071->format(DATE_W3C);
echo 
$str071_frmt;

?> 

  8 EXERCISE   

<?php

date_default_timezone_set
('UTC');
$db1 = new DateTimeImmutable'2008-01-01' );
$db2 = new DateTime'2008-01-01' );
$de = new DateTime'2008-03-31' );
$di DateInterval::createFromDateString'first day of next month' );

foreach ( new 
DatePeriod$db1$di$de ) as $dt )
{
    echo 
'<u>'get_class$dt ) . "</u><br><br>";
    echo 
$dt->format"l Y-m-d" );
    echo 
'<br>';
    echo 
$dt->modify"3 tuesday" )->format"l Y-m-d" );
    echo 
'<br>';
    echo 
$dt->format"l Y-m-d" );
    echo 
'<br><br>';
    
}

foreach ( new 
DatePeriod$db2$di$de ) as $dt )
{
    echo 
'<u>'get_class$dt ) . "</u><br><br>";
    echo 
$dt->format"l Y-m-d" );
    echo 
'<br>';
    echo 
$dt->modify"3 tuesday" )->format"l Y-m-d" );
    echo 
'<br>';
    echo 
$dt->format"l Y-m-d" );
    echo 
'<br><br>';
}

?>

  9 EXERCISE   

<?php

$tz 
= new DateTimeZone("Asia/Tokyo");
$current "2012-12-27 16:24:08";

function 
dump($a$b$c)
{   echo 
$a->format('e'), "<br>";
    echo 
'orig:    '$a->format('Y-m-d H:i:s'), "<br><br>";
    echo 
$b->format('e'), "<br>";
    echo 
'copy:    '$b->format('Y-m-d H:i:s'), "<br><br>";
    echo 
$c->format('e'), "<br>";
    echo 
'changed: '$c->format('Y-m-d H:i:s'), "<br><br>";
}

echo 
"modify():<br><br>";
$v date_create_immutable($current);
$z $v;
$x $z->modify("+2 days");
dump($v$z$x);
$v date_create($current);
$z $v;
$x $z->modify("+2 days");
dump($v$z$x);

echo 
"<br><br>add():<br><br>";
$v date_create_immutable($current);
$z $v;
$x $z->add(new DateInterval("P2DT2S"));
dump($v$z$x);
$v date_create($current);
$z $v;
$x $z->add(new DateInterval("P2DT2S"));
dump($v$z$x);

echo 
"<br><br>sub():<br><br>";
$v date_create_immutable($current);
$z $v;
$x $z->sub(new DateInterval("P2DT2S"));
dump($v$z$x);
$v date_create($current);
$z $v;
$x $z->sub(new DateInterval("P2DT2S"));
dump($v$z$x);

echo 
"<br><br>setTimezone():<br><br>";
$v date_create_immutable($current);
$z $v;
$x $z->setTimezone($tz);
dump($v$z$x);
$v date_create($current);
$z $v;
$x $z->setTimezone($tz);
dump($v$z$x);
$v = new DateTimeImmutable($current);
$z $v;
$x $z->setTimezone($tz);
dump($v$z$x);

echo 
"<br><br>setTime():<br><br>";
$v date_create_immutable($current);
$z $v;
$x $z->setTime(5719);
dump($v$z$x);
$v date_create($current);
$z $v;
$x $z->setTime(5719);
dump($v$z$x);

echo 
"<br><br>setDate():<br><br>";
$v date_create_immutable($current);
$z $v;
$x $z->setDate(5719);
dump($v$z$x);
$v date_create($current);
$z $v;
$x $z->setDate(5719);
dump($v$z$x);

echo 
"<br><br>setIsoDate():<br><br>";
$v date_create_immutable($current);
$z $v;
$x $z->setIsoDate(201226);
dump($v$z$x);
$v date_create($current);
$z $v;
$x $z->setIsoDate(201226);
dump($v$z$x);

echo 
"<br><br>setTimestamp():<br><br>";
$v date_create_immutable($current);
$z $v;
$x $z->setTimestamp(2012234222);
dump($v$z$x);
$v date_create($current);
$z $v;
$x $z->setTimestamp(2012234222);
dump($v$z$x);

?>