Hvordan beregne tidsforskjellen PHP

Noen ganger kan det være nødvendig å vite tidsforskjellen mellom to datoer på nettstedet ditt - for eksempel hvis du har et tidsur. PHP har flere funksjoner som vil returnere datoer og klokkeslett i ulike former, men de tillater ikke for mye fleksibilitet. Ved å kombinere disse funksjonene med en du lager selv, kan du beregne forskjellen mellom to datoer og klokkeslett, sparer verdier fra sekunder til år i egne variabler. Deretter kan du redigere eller vise disse verdiene som ønsket.

Bruksanvisning

1 Åpne en HTML-fil og skriv inn følgende kode i "<body>" element:

<? Php

funksjon timeDiff ($ først, $ sist) {

Dette åpner en PHP-koden og definerer en ny funksjon kalt "timeDiff" som aksepterer to parametre. Disse vil være i form av to datoer med en "ÅÅÅÅ-MM-DD TT: MM: SS" format, slik at de forhåndsdefinerte PHP funksjoner for å manipulere dem.

2 Skriv inn følgende:

if ($ først> $ sist) {

$ Tmp = $ sist;

$ Vare = $ først;

$ Første = $ tmp;

}

Denne blokken sikrer at, uavhengig av om den første parameteren kommer kronologisk før eller etter den andre parameteren, returnerer funksjonen en positiv tidsforskjell.

3 Skriv inn følgende kode:

$ Firsttime = strtotime ($ først);

$ Lasttime = strtotime ($ siste);

$ År = $ dager = $ timer = $ minutter = 0;

$ sekunder = $ lastTime- $ firsttime;

De to første linjene skaper et par variabler ut av de to dato parametere og konvertere hver til et antall sekunder gått siden 1. januar 1970 (Unix tid), slik at verdiene kan endres. Den tredje linjen skaper fire tellende variabler og initialiserer dem til null. Den siste linjen skaper en variabel som blir forskjellen i sekunder fra den første datoen til den siste datoen.

4 Skriv inn følgende kode:

while ($ sekunder> = 31536000) {

$ År = $ år + 1;

$ sekunder = $ sekunder - 31536000;

}

while ($ sekunder> = 86400) {

$ dager = $ dager + 1;

$ sekunder = $ sekunder - 86400;

}

while ($ sekunder> = 3600) {

$ Timer = $ timer + 1;

$ sekunder = $ sekunder - 3600;

}

mens ($ sekunder> = 60) {

$ minutter = $ minutter + 1;

$ sekunder = $ sekunder - 60;

}

Disse blokkene minske verdien av $ sekunder variabelen for å beregne hvor mange år, dager, timer og minutter har gått. På grunn av at antall dager i hver måned er forskjellig, er det ikke praktisk å telle det antall.

5 Skriv inn følgende:

echo $ årene. "År". $ dager. " dager, " . $ timer. "Timer".

$ minutter. " minutter, " . $ sekunder. "sekunder.";

}

?>

Disse linjene bare vise tidsforskjellen til nettstedet besøkende ved hjelp av ekkoet uttalelsen og lukk timeDiff funksjon og PHP-koden.

6 Skriv inn følgende:

echo timeDiff ( "2011-06-13 12:15:07", "2011-07-09 18:35:15");

echo timeDiff ( "2010-04-16 12:00:00", "2011-04-16 12:00:00");

echo timeDiff ( "2012-12-01 00:00:00", date ( 'YMD h: i: s', tid ()));

ekko timeDiff (dato ( 'YMD h: i: s', tid ()), "2012-12-01 00:00:00");

Disse fire linjer er fire eksempler på timeDiff funksjon i arbeid. Den første beregner forskjellen og returnerer null år, 26 dager, seks timer, 20 minutter og åtte sekunder. Den andre går tilbake nøyaktig ett år. Den tredje og fjerde begge bruker PHP dato og klokkeslett funksjoner for å skape en av parametrene; nøyaktig tid på den besøkendes datamaskin. Legg merke til at de passerer de samme verdiene, men i motsatt rekkefølge. Fordi du sjekket for dette i begynnelsen av timeDiff funksjon, både returnere de samme resultatene; imidlertid endre disse resultatene dynamisk basert på tid og dag som en besøkende laster siden.