2011-01-12 7 views
1

Ich baue ein Quiz-System zu zählen,php die verbleibende Zeitrahmen

die Felder auf dem Tisch:

ID, Titel, Beschreibung, Status, erstellt,

endete die Logik geht so:

ein Quiz letzten nur eine Woche, es endet automatisch am letzten Tag der Woche (ich denke Samstag 24:00), und der Admin sollte das Quiz an jedem Tag der eingeben Woche, wenn es auf Wedne eingegeben wird Sagen wir einmal um 13:00 Uhr, dann sollte das System den verbleibenden Zeitrahmen zählen (in diesem Fall wären es etwa 83 Stunden) und es dann zur aktuellen Zeit() hinzufügen, die in das Feld "Beendet" eingefügt wird.

Bin ich auf dem richtigen Weg ?? und wenn ich bin, wie sollte ich den restlichen Zeitrahmen in PHP zählen?

dank

Antwort

2

Sie können den Zeitstempel erhalten strtotime(); und verwenden Sie das Argument ‚nächsten Samstag‘ verwenden, so dass Sie die verbleibende Zeit, indem Sie so etwas wie dies berechnen könnte:

$timeRemaining = strtotime('next saturday') - time(); 

, die Ihnen ein Zeitstempel in Sekunden, den Sie durch 3600 teilen können, um die Stunden zu erhalten.

+0

dieser funktioniert, danke Mann. BTW, um die Stunde zu bekommen, sollte ich es durch 3600 teilen sollte ich nicht? – littlechad

+0

Oh ja, es ist noch früh! Auch wie unten vorgeschlagen, möchten Sie vielleicht "nächsten Sonntag" tun, um 00:00 am Sonntag (1 Sekunde nach 23:59:59 am Samstag) zu bekommen. – Dunhamzzz

+0

ja ich habe ein bisschen von deinem Code geändert und ändere es stattdessen auf "nächsten Sonntag": D. Ich verstehe aber, danke, Mann – littlechad

0

können Sie die Endzeit finden, indem Sie die mktime oder strtotime-Funktion, und die Zeit finden, mit restlichen

// Saturday, this week 
$ends = strtotime('next saturday'); 
$remaining = $ends - time(); // Remaining time in seconds 
2

auf PHP> = 5.3.0 Sie die Funktion date_diff

Bei früheren verwenden Version können Sie so etwas verwenden

$date1 = time(); 
$date2 = mktime(0,0,0,01,28,2011); 

$diff = $date2 - $date1; 
0

Wenn ich die Frage richtig verstanden habe, dh Sie möchten, dass das Enddatum in der Datenbank gespeichert wird. Kann dies nicht nur mit

$ ended = strtotime ("+ 1 Woche") erreicht werden;

0

Beachten Sie, dass am Samstag um 24:00 Uhr nicht existiert. Die Zeit läuft am Samstag von 23:59:59 Uhr bis zum Sonntag um 00:00:00 Uhr.

Keine Notwendigkeit, die Zeiten manuell zusammenzufügen. Wenn das Quiz erstellt wurde, können Sie $end_time = strtotime('next Sunday'); verwenden, um die Zeit für das Ende des Quiz zu erhalten (00:00:00 am Sonntagmorgen).

Verwandte Themen