Jak používat funkci date_sub() v PHP

Jak Pouzivat Funkci Date Sub V Php



The date_sub() je funkcí Čas schůzky třídy, která je součástí rozšíření data a času PHP. Používá se k odečtení zadaného intervalu od daného data. Lze jej použít k výpočtu budoucího data odečtením jednoho nebo více dnů, měsíců nebo let od aktuálního data. The date_sub() funkce vrací nový Čas schůzky objekt představující datum a čas po provedení výpočtu.

Základní syntaxe

Syntaxe pro použití date_sub() funkce je uvedena níže:

datum_sub ( Čas schůzky $objekt , DateInterval $interval )

Tady, $objekt je Čas schůzky objekt, od kterého chcete interval odečíst, a $interval je DateInterval objekt, který určuje interval, který chcete odečíst. Všimněte si, že oba argumenty jsou nutné k použití date_sub() fungovat správně.







Práce s DateInterval

Chcete-li použít date_sub() funkci, musíte vytvořit a DateInterval objekt, který určuje množství času, které chcete odečíst od původního data a času. DateInterval objekty lze vytvořit pomocí DateInterval konstruktér. Konstruktor přebírá parametr řetězce, který určuje interval ve formátu jako P1D (jeden den), P1M (jeden měsíc), P1Y (jeden rok) a P1DT1H (jeden den a jedna hodina).



Příklady

// Odečtěte jeden den
$interval = Nový DateInterval ( 'P1D' ) ; // Odečtěte jeden měsíc
$interval = Nový DateInterval ( 'P1M' ) ;

// Odečtěte jeden rok
$interval = Nový DateInterval ( 'P1Y' ) ;

Jak používat PHP funkci date_sub()

Jakmile budete mít a DateInterval objekt, můžete jej kombinovat s a Čas schůzky objekt pro výpočet nového data a času. Zde je příklad, který odečte jeden den od aktuálního data:





$datetime = Nový Čas schůzky ( ) ;

$interval = Nový DateInterval ( 'P1D' ) ;

datum_sub ( $datetime , $interval ) ;

echo $datetime -> formát ( 'Y-m-d H:i:s' ) ;

?>

Jak vidíte, nové datum a čas je o jeden den dřívější než aktuální datum.





Je také možné odečíst hodiny, minuty a sekundy od objektu DateTime pomocí date_sub() funkce. Chcete-li odečíst hodiny, můžete datový interval předat jako PT1H, což znamená odečíst jednu hodinu. Zvažte například následující kód:





$datetime = Nový Čas schůzky ( '2023-05-16 14:43:00' ) ;

datum_sub ( $datetime , Nový DateInterval ( 'PT1H' ) ) ;

echo $datetime -> formát ( 'Y-m-d H:i:s' ) ;

?>

Tím se od objektu DateTime odečte jedna hodina a objekt se aktualizuje novou hodnotou. K nové hodnotě se dostanete pomocí formát() funkce objektu DateTime.

Příklad 1: Odečítání různých intervalů

The date_sub() funkce umožňuje odečítání různých intervalů, nejen dnů. Uvažujme scénář, kdy chceme od daného data a času odečíst 2 hodiny a 30 minut.



$datum = Nový Čas schůzky ( '2023-11-02 10:32:45' ) ;

$interval = Nový DateInterval ( 'PT1H15M' ) ;

datum_sub ( $datum , $interval ) ;

echo $datum -> formát ( 'Y-m-d H:i:s' ) ;

?>

V tomto příkladu vytvoříme objekt DateTime představující datum a čas „2023-11-02 10:32:45“ . Vytváříme také a DateInterval objekt představující období 1 hodiny a 15 minut ve formátu „PT1H15M“. Poté použijeme date_sub() funkce pro odečtení intervalu od data a času.

Příklad 2: Odečítání více intervalů

Můžete také použít date_sub() funkce k odečtení více intervalů od objektu DateTime. Syntaxe je jednoduchá: stačí vytvořit nový objekt DateInterval pro každý interval, který chcete odečíst, a předat je všechny date_sub() fungovat jako pole.



$intervaly = pole (

Nový DateInterval ( 'P1Y' ) ,

Nový DateInterval ( 'P6M' ) ,

Nový DateInterval ( 'P3D' )

) ;

$datetime = Nový Čas schůzky ( ) ;

pro každého ( $intervaly tak jako $interval ) {

datum_sub ( $datetime , $interval ) ;

}

echo $datetime -> formát ( 'Y-m-d H:i:s' ) ;

?>

V tomto příkladu jsme od data odečetli jeden rok, šest měsíců a tři dny.

Příklad 3: date_sub() s časovými pásmy

Jednu věc si musíte uvědomit při používání date_sub() funkcí je, že může ovlivnit vaše časové pásmo Čas schůzky objekt. Ve výchozím stavu, Čas schůzky objekty používají časové pásmo vašeho serveru. Pokud však chcete pracovat s jiným časovým pásmem, můžete jej explicitně nastavit pomocí setTimezone() metoda.



$datetime = Nový Čas schůzky ( 'Nyní' , Nový DateTimeZone ( 'Amerika/New_York' ) ) ;

$interval = Nový DateInterval ( 'P1D' ) ;

datum_sub ( $datetime , $interval ) ;

echo $datetime -> formát ( 'Y-m-d H:i:s' ) ;

?>

V tomto příkladu jsme nastavili časové pásmo na Amerika/New_York a odečetli jeden den od data a času.

Při odečítání intervalů pomocí date_sub() funkce, je důležité si uvědomit, že pokud se výsledné datum stane neplatným, automaticky se upraví.

Závěr

The date_sub() Funkce v PHP poskytuje pohodlný způsob, jak odečíst intervaly od objektů DateTime. Pomocí této funkce mohou vývojáři snadno provádět operace, jako je odečítání dnů, hodin, minut nebo složitých intervalů od daného data a času. The date_sub() funkce nabízí flexibilitu a přesnost při zpracování výpočtů data, což z ní činí cenný nástroj pro práci s daty a časy v aplikacích PHP.