2016-12-14 5 views
0

Ich versuche, die verbleibenden Tage in einem Monat von einem beliebigen Tag zu berechnen. Ich habe den folgenden Code:Probleme mit PHP-Datum() - verbleibende Tage im Monat

<?php 
date_default_timezone_set("UTC"); 
echo $timestamp = date('Y-m-d'); 
echo " - "; 
echo $daysInMonth = (int)date('t', $timestamp); 
echo " - "; 
echo $thisDayInMonth = (int)date('j', $timestamp); 
echo " - "; 
echo $daysRemaining = $daysInMonth - $thisDayInMonth; 
?> 

Die Ausgabe lautet: 2016.12.14 31 - - 1 bis 30

ich auch mit Datum ('d', $ timestamp) versucht, aber es gibt immer noch 1 für den heutigen Tag zurück, obwohl es 14 sein sollte. Warum bekomme ich 1 für den heutigen Tag? Vielen Dank.

Meine PHP-Version ist 5.4.45.

+0

versuchen Sie, '$ timestamp = time()' anstelle von '$ timestamp = date ('Y-m-d')' –

+0

Verwenden Sie stattdessen 'DateTime'. https://3v4l.org/blOO7 –

Antwort

2

Fügen Sie einfach strtotime zur Zeitstempelvariablen hinzu, da die Datumsfunktion den zweiten Parameter als Ganzzahl benötigt. Wenn Sie jedoch ein formatiertes Datum angeben, wird es als Zeichenfolge betrachtet.

date_default_timezone_set("UTC"); 
echo $timestamp = date('Y-m-d'); 
echo " - "; 
echo $daysInMonth = (int)date('t', strtotime($timestamp)); 
echo " - "; 
echo $thisDayInMonth = (int)date('j', strtotime($timestamp)); 
echo " - "; 
echo $daysRemaining = $daysInMonth - $thisDayInMonth; 

Ausgang:

2016-12-14 - 31 - 14 - 17 
Verwandte Themen