Hoe de functie date_sub () in PHP te gebruiken

Hoe De Functie Date Sub In Php Te Gebruiken



De datum_sub() is een functie van de Datum Tijd class, dat deel uitmaakt van de datum- en tijdextensie van PHP. Het wordt gebruikt om een ​​opgegeven interval af te trekken van een bepaalde datum. Het kan worden gebruikt om een ​​toekomstige datum te berekenen door een of meer dagen, maanden of jaren af ​​te trekken van de huidige datum. De datum_sub() functie retourneert een nieuwe Datum Tijd object dat de datum en tijd vertegenwoordigt nadat de berekening is gemaakt.

Basis syntaxis

De syntaxis voor gebruik datum_sub() functie wordt hieronder gegeven:

datum_sub ( Datum Tijd $voorwerp , DatumInterval $interval )

Hier, $voorwerp is de Datum Tijd object waarvan u het interval wilt aftrekken, en $interval is de DatumInterval object dat het interval specificeert dat u wilt aftrekken. Merk op dat beide argumenten vereist zijn om de datum_sub() correct functioneren.







Werken met DateInterval

Om de datum_sub() functie, moet u een DatumInterval object dat de hoeveelheid tijd specificeert die u wilt aftrekken van uw oorspronkelijke datum-tijd. DatumInterval objecten kunnen worden gemaakt met behulp van de DatumInterval constructeur. De constructor neemt een tekenreeksparameter die het interval specificeert in een formaat zoals P1D (een dag), P1M (een maand), P1Y (een jaar) en P1DT1H (een dag en een uur).



Voorbeelden

// Trek een dag af
$interval = nieuw DatumInterval ( 'P1D' ) ; // Trek een maand af
$interval = nieuw DatumInterval ( 'P1M' ) ;

// Trek een jaar af
$interval = nieuw DatumInterval ( 'P1Y' ) ;

Hoe de PHP-functie date_sub () te gebruiken

Zodra je een DatumInterval object, je kunt het combineren met een Datum Tijd object om een ​​nieuwe datum-tijd te berekenen. Hier is een voorbeeld waarbij één dag wordt afgetrokken van de huidige datum:





$ datumtijd = nieuw Datum Tijd ( ) ;

$interval = nieuw DatumInterval ( 'P1D' ) ;

datum_sub ( $ datumtijd , $interval ) ;

echo $ datumtijd -> formaat ( 'J-m-d H:i:s' ) ;

?>

Zoals u kunt zien, is de nieuwe datetime een dag eerder dan de huidige datum.





Het is ook mogelijk om uren, minuten en seconden af ​​te trekken van een DateTime-object met behulp van de datum_sub() functie. Om uren af ​​te trekken, kunt u het datuminterval doorgeven als PT1H, wat betekent een uur aftrekken. Beschouw bijvoorbeeld de volgende code:





$ datumtijd = nieuw Datum Tijd ( '2023-05-16 14:43:00' ) ;

datum_sub ( $ datumtijd , nieuw DatumInterval ( 'PT1H' ) ) ;

echo $ datumtijd -> formaat ( 'J-m-d H:i:s' ) ;

?>

Hierdoor wordt een uur afgetrokken van het DateTime-object en wordt het object bijgewerkt met de nieuwe waarde. U kunt toegang krijgen tot de nieuwe waarde door de formaat() functie van het DateTime-object.

Voorbeeld 1: verschillende intervallen aftrekken

De datum_sub() functie maakt het mogelijk om verschillende intervallen af ​​te trekken, niet alleen dagen. Laten we eens kijken naar een scenario waarin we 2 uur en 30 minuten willen aftrekken van een bepaalde datum en tijd.



$ datum = nieuw Datum Tijd ( '2023-11-02 10:32:45' ) ;

$interval = nieuw DatumInterval ( 'PT1H15M' ) ;

datum_sub ( $ datum , $interval ) ;

echo $ datum -> formaat ( 'J-m-d H:i:s' ) ;

?>

In dit voorbeeld maken we een DateTime-object dat de datum en tijd vertegenwoordigt “2023-11-02 10:32:45” . We maken ook een DatumInterval object dat een periode van 1 uur en 15 minuten vertegenwoordigt in het formaat 'PT1H15M'. Wij gebruiken dan de datum_sub() functie om het interval af te trekken van de datum en tijd.

Voorbeeld 2: meerdere intervallen aftrekken

U kunt ook de datum_sub() functie om meerdere intervallen af ​​te trekken van een DateTime-object. De syntaxis is eenvoudig: maak gewoon een nieuw DateInterval-object aan voor elk interval dat u wilt aftrekken en geef ze allemaal door aan de datum_sub() functioneren als een array.



$ intervallen = reeks (

nieuw DatumInterval ( 'P1Y' ) ,

nieuw DatumInterval ( 'P6M' ) ,

nieuw DatumInterval ( 'P3D' )

) ;

$ datumtijd = nieuw Datum Tijd ( ) ;

voor elk ( $ intervallen als $interval ) {

datum_sub ( $ datumtijd , $interval ) ;

}

echo $ datumtijd -> formaat ( 'J-m-d H:i:s' ) ;

?>

In dit voorbeeld hebben we een jaar, zes maanden en drie dagen afgetrokken van de datum.

Voorbeeld 3: date_sub() met tijdzones

Er is één ding waar u op moet letten bij het gebruik van de datum_sub() functie is dat het de tijdzone van uw kan beïnvloeden Datum Tijd voorwerp. Standaard, Datum Tijd objecten gebruiken de tijdzone van uw server. Als u echter met een andere tijdzone wilt werken, kunt u deze expliciet instellen met behulp van de setTimezone() methode.



$ datumtijd = nieuw Datum Tijd ( 'nu' , nieuw DatumTijdZone ( 'Amerika/New_York' ) ) ;

$interval = nieuw DatumInterval ( 'P1D' ) ;

datum_sub ( $ datumtijd , $interval ) ;

echo $ datumtijd -> formaat ( 'J-m-d H:i:s' ) ;

?>

In dit voorbeeld hebben we de tijdzone ingesteld op America/New_York en één dag afgetrokken van de datum/tijd.

Bij het aftrekken van intervallen met behulp van de datum_sub() functie, is het belangrijk op te merken dat de resulterende datum automatisch wordt aangepast als deze ongeldig wordt.

Conclusie

De datum_sub() functie in PHP biedt een handige manier om intervallen af ​​te trekken van DateTime-objecten. Door deze functie te gebruiken, kunnen ontwikkelaars eenvoudig bewerkingen uitvoeren, zoals het aftrekken van dagen, uren, minuten of complexe intervallen van een bepaalde datum en tijd. De datum_sub() functie biedt flexibiliteit en nauwkeurigheid bij het afhandelen van datumberekeningen, waardoor het een waardevol hulpmiddel is voor het werken met datums en tijden in PHP-applicaties.