2012-06-28 20 views
22

Próbuję uzyskać znacznik czasu pierwszego dnia miesiąca o 00:00:00.Jak uzyskać znacznik czasu bieżącego miesiąca, pierwszego dnia miesiąca, godziny zero

Na przykład, znacznik czasu sty 01 2012 00:00:00

Robię to:

$test_month = time(); // Seconds 
$test_month = date('M', $test_month); // This month 
$test_month = strtotime($test_month); // Timestamp of this month 
echo $test_month; 

Ten wraca Zero Hour aktualnego dnia miesiąca, a nie początek miesiąca.

Wszelkie sugestie?

Odpowiedz

21

Spróbuj to: wyjście

echo date('F jS Y h:i:s A', strtotime('first day of ' . date('F Y'))); 

będzie to:

June 1st 2012 12:00:00 AM 
+0

Wow, ja nawet nie wiem 'pierwszy dzień' istniał. Wspaniały! Dzięki. – JROB

+0

@JohnRobinson - Nie ma za co! Jest to faktycznie udokumentowane na [liście obsługiwanych względnych czasów] (http://us2.php.net/manual/en/datetime.formats.relative.php). Jeśli mój post odpowiada na twoje pytanie, rozważ zaakceptowanie tego. – nickb

+4

Nie musisz używać daty ("F Y"), możesz po prostu użyć 'strtotime (" pierwszego dnia tego miesiąca ")'. Możesz nawet dodać sygnaturę czasową innego czasu jako drugi argument, aby uzyskać pierwszy dzień miesiąca. – gwk

14

Spróbuj

$time = strtotime(date('Y-m-01 00:00:00')); // == 1338534000 

co przekłada się na:

$date = date('Y-m-d H:i:s', $time); // == 2012-06-01 00:00:00 

Przeczytaj instrukcję PHP na funkcje date() i time().

1
echo date("Y-m-d 00:00:00", strtotime("first day of this month")); 

This wyjścia:

2017-05-01 00:00:00