Ibland kanske du behöver veta tidsskillnaden mellan två datum på din webbplats - till exempel om du har en nedräkningstimer . PHP har flera funktioner som returnerar datum och tider i olika former , men de tillåter inte för mycket flexibilitet . Genom att kombinera dessa funktioner med en du skapar själv , kan du beräkna skillnaden mellan två datum och tider , sparar värden från sekunder till år i olika variabler . Du kan sedan redigera eller visa dessa värden och returresa . Instruktioner
1
Öppna en HTML-fil och skriv in följande kod i "
" inslag : ?
< Php
funktion timeDiff ( $ först , öppnar $ sista ) {
en PHP -tagg och definierar en ny funktion som kallas " timeDiff " som accepterar två parametrar . Dessa kommer att vara i form av två datum med ett " ÅÅÅÅ - MM - DD HH : MM : SS " -format , så att de fördefinierade PHP funktioner för att manipulera dem
2
Skriv följande : .
if ( $ först > $ sista ) {
$ tmp = $ sist ;
$ sista = $ första ;
$ första = $ tmp ;
}
Detta block säkerställer att , oavsett om den första parametern kommer kronologiskt före eller efter den andra parametern , returnerar funktionen en positiv tidsskillnaden .
3
Skriv följande kod :
$ firsttime = strtotime ( $ först ) ,
$ lastTime = strtotime ( $ sist ) ,
$ år = $ dagar = $ timmar = $ minuter = 0 ;
$ sekunder = $ lastTime - $ Firsttime ,
de första två raderna skapar ett par variabler ur de två datum parametrarna och konvertera varje till en antal sekunder förflutit sedan 1 januari 1970 ( Unix tid ) så att värdena kan ändras . Den tredje linjen skapar fyra räknar variabler och initierar dem till noll . Den sista raden skapar en variabel som blir skillnaden i sekunder från första dagen till den sista dagen
4
Skriv följande kod : .
Medan ( $ sekunder > = 31.536.000 ) {
$ år = $ år + 1;
$ sekunder = $ sekunder - 31.536.000 ,
}
while ( $ sekunder > = 86400 ) {
$ dagar = $ dagar + 1;
$ sekunder = $ sekunder - 86400 ,
}
while ( $ sekunder > = 3600 ) {
$ h = $ timmar + 1;
$ sekunder = $ sekunder - 3600 ,
}
( $ sekunder > ; = 60 ) {
$ minuter = $ minuter + 1;
$ sekunder = $ sekunder - 60 ,
}
Dessa block dekrementera värde av $ sekunder variabeln för att beräkna hur många år har dagar, timmar och minuter gått . Eftersom antalet dagar i varje månad varierar , är det inte praktiskt att räkna det antal
5
Skriv följande : .
Echo $ år . " År " . $ dagar . " Dagar" . $ timmarna. " Timmar " .
$ Minuter . "Minuter ", . $ sekunder . "Sekunder ." ?
}
>
Dessa rader visar bara tidsskillnaden till webbplatsen besökaren använder eko uttalande och stäng sedan timeDiff funktion och PHP . tag
6
Skriv följande :
echo timeDiff ( " 2011-06-13 12:15:07 " , " 2011-07-09 18:35:15 " ) ;
echo timeDiff ( " 2010-04-16 00:00:00 ", " 2011-04-16 12:00:00 ");
echo timeDiff ( " 2012 - 12-01 00:00:00 " , datum ( ' YMD h : i : s ' , tid ( ) ) ) ;
echo timeDiff ( datum ( ' YMD h : i : s ' , tid ( ) ) , " 2012-12-01 00:00:00 " ) ;
Dessa fyra linjer är fyra exempel på timeDiff funktion i arbete . Den första beräknar skillnaden och returnerar noll år , 26 dagar , sex timmar, 20 minuter och åtta sekunder . Den andra returnerar exakt ett år . Den tredje och fjärde båda använder PHP datum och tidsfunktioner för att skapa en av parametrarna , exakt tid på besökarens dator . Notera att de passerar samma värden men i motsatt ordning. Eftersom du kontrolleras för detta i början av timeDiff funktionen , både returnerar samma resultat , men dessa resultat förändras dynamiskt baserat på tid och dag som en besökare laddar sidan
.