Muszę uzyskać pierwszy i ostatni dzień miesiąca w formacie RRRR-MM-DD, podając tylko miesiąc i rok. Czy istnieje dobry, łatwy sposób to zrobić?W PHP istnieje łatwy sposób na uzyskanie pierwszej i ostatniej daty miesiąca?
Odpowiedz
$first = date('Y-m-d', mktime(0, 0, 0, $month, 1, $year));
$last = date('Y-m-t', mktime(0, 0, 0, $month, 1, $year));
Zobacz date() w dokumentacji PHP.
Pierwszy dzień to zawsze RRRR-MM-01, prawda? Przykład: date("Y-M-d", mktime(0, 0, 0, 8, 1, 2008))
Ostatni dzień poprzedniego dnia następnego miesiąca za pierwszym dniu:
$date = new DateTime("2008-09-01");
$date->modify("-1 day");
echo $date->format("Y-m-d");
Pierwszy dzień miesiąca jest zawsze 1. Tak będzie stać
YYYY-MM-01
się Ostatni dzień można obliczyć jako:
<?php
$num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
echo "There was $num days in August 2003";
?>
OK, najpierw nie jest łatwo.
date ('Y-m-d', mktime(0,0,0,MM,01,YYYY));
Ostatni jest nieco trudniejszy, ale niewiele.
date ('Y-m-d', mktime(0,0,0,MM + 1,-1,YYYY));
Jeśli Pamiętam moją datę PHP rzeczy poprawnie ...
** edit - Gah! Pobity do niego o milion razy ...
Edit Pat:
Ostatni dzień powinien być
date ('Y-m-d', mktime(0,0,0,$MM + 1,0,$YYYY)); // Day zero instead of -1
Nawiasem mówiąc @ZombieSheep rozwiązanie
date ('Y-m-d', mktime(0,0,0,$MM + 1,-1,$YYYY));
nie działa powinien być
date ('Y-m-d', mktime(0,0,0,$MM + 1,0,$YYYY)); // Day zero instead of -1
Oczywiście przyjęte przez Michała Słaby rozwiązanie jest najprostsze.
Wystarczy, aby upewnić się, że nie przegap żadnych luźnych końców:
$startDay = 1;
if (date("m") == 1) {
$startMonth = 12;
$startYear = date("Y") - 1;
$endMonth = 12;
$endYear = date("Y") - 1;
}
else {
$startMonth = date("m") - 1;
$startYear = date("Y");
$endMonth = date("m") - 1;
$endYear = date("Y");
}
$endDay = date("d") - 1;
$startDate = date('Y-m-d', mktime(0, 0, 0, $startMonth , $startDay, $startYear));
$endDate = date('Y-m-d', mktime(0, 0, 0, $endMonth, $endDay, $endYear));
<?php
echo "Month Start - " . $monthStart = date("Y-m-1") . "<br/>";
$num = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y"));
echo "Monthe End - " . $monthEnd = date("Y-m-".$num);
?>
Najłatwiej to zrobić z PHP jest
$dateBegin = strtotime("first day of last month");
$dateEnd = strtotime("last day of last month");
echo date("MYDATEFORMAT", $dateBegin);
echo "<br>";
echo date("MYDATEFORMAT", $dateEnd);
lub ostatni tydzień
if (date('N', time()) == 7) {
$dateBegin = strtotime("-2 weeks Monday");
$dateEnd = strtotime("last Sunday");
} else {
$dateBegin = strtotime("Monday last week");
$dateEnd = strtotime("Sunday last week");
}
Lub ostatni rok
$dateBegin = strtotime("1/1 last year");
$dateEnd = strtotime("12/31 this year");
spróbować uzyskać liczbę dni w miesiącu:
$numdays = date('t', mktime(0, 0, 0, $m, 1, $Y));
przykładu; Chcę dostać pierwszy dzień i ostatni dzień bieżącego miesiąca.
$month = (int) date('F');
$year = (int) date('Y');
date('Y-m-d', mktime(0, 0, 0, $month + 1, 1, $year)); //first
date('Y-m-d', mktime(0, 0, 0, $month + 2, 0, $year)); //last
Po uruchomieniu tego na przykład w dniu 2015-01-09, pierwsza i ostatnia wartość będą sekwencyjnie;
2015-01-01
2015-01-31
Testowany.
Od here(get next month last day) oznaczona jako powielona, więc nie mogę tam dodać komentarza, ale ludzie mogą uzyskać złe odpowiedzi.
Prawidłowe jeden dla ostatniego dnia następnego miesiąca:
echo ((new DateTime(date('Y-m').'-01'))->modify('+1 month')->format('Y-m-t'));
Prawidłowe jeden do pierwszego dnia następnego miesiąca:
echo ((new DateTime(date('Y-m').'-01'))->modify('+1 month')->format('Y-m-01'));
kod jak to będzie zapewnienie marca od stycznia, więc to nie to, co jest można się było spodziewać.
echo ((new DateTime())->modify('+1 month')->format('Y-m-t'));
- 1. Bezpieczny sposób na uzyskanie bieżącego miesiąca i roku w serii
- 2. Czy istnieje łatwy sposób na uzyskanie nazwy ServerName w Symfony?
- 3. Facebook Insights niezawodny sposób na uzyskanie ostatniej aktualizacji?
- 4. Kafka - najprostszy sposób na uzyskanie ostatniej offsetu
- 5. Łatwy sposób na uzyskanie tytułów wiktionarnych tylko w jednym języku?
- 6. Czy istnieje łatwy sposób na zmianę wersji PHP podczas programowania?
- 7. Łatwy sposób na uzyskanie identyfikatora Vimeo z adresu vimeo
- 8. BeautifulSoup - łatwy sposób na uzyskanie HTML wolne zawartość
- 9. Tablica PHP zawierająca wszystkie daty bieżącego miesiąca
- 10. Czy istnieje elegancki sposób na uzyskanie pierwszej wartości zerowej wielokrotnych zwracanych metod w języku Java?
- 11. Uzyskiwanie pierwszej daty z pierwszego miesiąca od bieżącej daty w JavaScript
- 12. Najszybszy sposób na usunięcie pierwszej i ostatniej linii z łańcucha w języku Python
- 13. Wyodrębnianie pierwszej i ostatniej pozycji w zbiorze danych
- 14. Czy istnieje łatwy sposób na graficzne tworzenie wykresów w neo4j?
- 15. Czy istnieje łatwy sposób na dołączenie źródła w środowisku Eclipse?
- 16. Łatwy sposób na połączenie plists?
- 17. Łatwy sposób na wyłączenie UITextField?
- 18. jaki jest najprostszy sposób na usunięcie pierwszej i ostatniej linii z pliku za pomocą awk?
- 19. Trzeci czwartek miesiąca w php
- 20. Łatwy sposób na nieprzerwane odliczanie
- 21. Czy istnieje sprytny sposób na uzyskanie sortable target w jQueryUI
- 22. Czy istnieje prosty sposób na uzyskanie wymiarów obrazu w Ruby?
- 23. Czy istnieje sposób na uzyskanie ograniczeń tabeli w SQLite?
- 24. Czy istnieje sposób na uzyskanie ruchów obiektów całkowitych w vim?
- 25. Czy istnieje łatwy sposób na powtórzenie NSArray do tyłu?
- 26. wyjątkiem pierwszej i ostatniej linii z sed/Start /,/END/
- 27. Czy istnieje sposób na uzyskanie obwiedni (w pikselach) elementu DOM?
- 28. Czy istnieje łatwy sposób na wyczyszczenie merytorycznego repozytorium artefaktów?
- 29. PHP: Łatwy sposób na rozpoczęcie realizacji transakcji PayPal?
- 30. Łatwy sposób na przeprowadzanie testów na klejnot?
czuję rodzaj głupio pytając dla pierwszego dnia miesiąca ....: \ –