Noen ganger må du kanskje vite tidsforskjellen mellom to datoer på nettstedet ditt - for eksempel hvis du har en nedtelling . 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 separate variabler. Du kan deretter redigere eller vise disse verdiene som ønsket. Instruksjoner
en
Åpne en HTML-fil og skriv inn følgende kode i "
" element : ?
< Php
funksjon timeDiff ( $ først, åpnes $ siste ) {
en PHP -kode 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ørste > $ siste ) {
$ tmp = $ sist ;
$ siste = $ første ;
$ første = $ tmp ;
}
Denne blokken sikrer at , uavhengig av om den første parameter kommer kronologisk før eller etter den andre parameteren , returnerer funksjonen en positiv tidsforskjellen.
3
Skriv inn følgende kode :
$ førstegangs = strotime ( $ første ) ;
$ LastTime = strotime ( $ forrige) ;
$ år = $ dager = $ timer = $ minutter = 0 ;
$ sekunder = $ LastTime - $ førstegangs ;
de to første linjene skaper et par av variabler ut av de to date parametere og konvertere hver til en antall sekunder som har 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 får forskjellen i sekunder fra den første datoen til den siste datoen
4
Skriv inn følgende kode : .
Mens ( $ 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 ,
}
while ( $ sekunder > ; = 60 ) {
$ minutter = $ minutter + 1 ;
$ sekunder = $ sekunder - 60 ;
}
Disse blokkene minske verdi av $ sekunder variabel for å beregne hvor mange år har dager, timer og minutter gått. Fordi antall dager i hver måned er forskjellig , er det ikke praktisk å telle at antallet
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 ekko uttalelse og deretter lukke timeDiff funksjon og PHP . tag
6
Skriv inn følgende : en
ekko timeDiff ( " 2011-06-13 12:15:07 ", " 2011-07-09 18:35:15 " ) ;
ekko timeDiff ( " 2010-04-16 12:00:00 ", " 2011-04-16 12:00:00 ");
ekko timeDiff ( " 2012 - 12-01 0:00:00 " , date (' YMD h : i: s' , tid ( ) ));
ekko timeDiff ( date ( ' YMD h : i: s' , tid ( ) ) , " 2012-12-01 00:00:00 ");
Disse fire linjene er fire eksempler på timeDiff fungere på jobb . Den første beregner forskjellen og returnerer null år, 26 dager, seks timer, 20 minutter og åtte sekunder . Den andre returnerer nøyaktig ett år . Den tredje og fjerde begge bruker PHP dato og tid -funksjoner for å skape en av parametrene , det nøyaktige tidspunktet på den besøkendes datamaskin . Legg merke til at de passerer de samme verdier, men i motsatt rekkefølge. Fordi du sjekket for dette i begynnelsen av timeDiff funksjon, både returnerer de samme resultatene , men disse resultatene endres dynamisk basert på tid og dag som en besøkende laster siden
.