Vraag Hoe kan ik het tijdstempel van vandaag in PHP krijgen


Ik heb geprobeerd

$dtToday = DateTime::createFromFormat('Y-m-d', date('Y-m-d'));

maar als ik het uitvoer

die($dtToday->format('d M Y g:i:s a'));

Ik krijg nog steeds de tijd bijv. "22 jan 2011 4:53:59 pm". Waarom is dat?

BIJWERKEN

Ah ... veel mensen begrepen me verkeerd, mijn slechte, ik vergat het belangrijkste punt aan te wijzen. Ik heb de datum gemaakt met alleen het datumgedeelte, ik wil de tijd niet. Dus ik zou zoiets verwachten

22 Jan 2011 12:00:00 am

10
2018-01-22 08:54


oorsprong


antwoorden:


OK, ik geef toe dat ik niet bekend ben met de DateTime-les. Maar ik ben er zeker van dat het methoden biedt zoals setHour, setMinute, enz. Die je kunt gebruiken om het tijdsgedeelte op nul te zetten. Persoonlijk zou ik de datum samenstellen met de mktime() functie:

echo date( "Y-m-d H:i:s", // this line is for demonstration
    mktime(0, 0, 0)       // this generates a timestamp which can be used in most date functions
                          // first three parameters are hour, minute, second which I set to 0
                          // remaining parameters are optional 
                          // infact all parameters are optional and all parameters default to corresponding portion of the *current* date/time
);

13
2018-01-22 10:30



Zie de documentatie voor DateTime::createFromFormat:

Als formaat bevat niet het karakter! dan delen van de gegenereerde tijd die niet zijn opgegeven in formaat wordt ingesteld op de huidige systeemtijd.

Als u de volgende functieaanroep doet, krijgt u het verwachte resultaat:

$dtToday = DateTime::createFromFormat('!Y-m-d', date('Y-m-d'));

12
2018-01-22 10:37



U kunt dit doen door de huidige Unix-tijdstempel als de tweede parameter door te geven aan de datumfunctie

echo date("Y-m-d H:i:s",time());

5
2018-01-22 08:57



Het starttijdstempel van vandaag

$today_start_ts = strtotime(date('Y-m-d', time()). '00:00:00');

5
2017-07-16 13:32



U krijgt "22 jan 2011 16:53:59 uur" omdat dit de regels zijn waarmee u uw datum indient:
d (dag): 22
M (maand): Jan
Y (jaar): 2011
g (12-uursnotatie): 4
i (minuten): 53
s (seconden): 59
a (am / pm): pm
Wees specifieker over het formaat dat u wilt dat uw tijdstempel heeft. Ik stel voor dat je een kijkje neemt naar de php-datum documentatie.


1
2018-01-22 09:16



Gebruikt het UTC, of ​​zoiets?

Ik heb een PHP-versie die me een foutmelding geeft wanneer ik iets doe date gerelateerd zonder eerst te gebruiken date_default_timezone_set. Misschien zal dat je helpen.


0
2018-01-22 08:58



Verwijder dit deel g:i:s a van uw code.

Nu, als je een leuke date wilt, opgemaakt volgens jouw lokale, raad ik je aan om te gebruiken strftime() functie.


0
2018-01-22 09:07