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.