Potrzebuję funkcji, która z podanej daty (zawsze jest to yyyy-mm-dd czyli np 2010-01-01) wycina mi tylko miesiąc i zwraca go jako integer a nie string. Z tym tez, ze jesli miesiac jest np styczen i ma pierwsza cyfre 0 to 0 tez wycina i zwraca mi tylko samą jedynkę. Próbowałem to zrobić z substr itp ale bez skutku ciągle zwracało mi null. Czyli np z daty 2014-02-03 zwraca mi tylko 2. Ktoś może szybko na to wpadnie i pomoże?
$Data = "2014-02-03";
$str = explode("-", "$Data");
$Miesiac = (int) $str[1];
//Edit
Aha, chyba źle zrozumiałem : D Chcesz zwrócić integer w postaci np. 02? Nie da się tak, integer to liczby całkowite, nie ma takiej liczby jak "02". Powiedz mi jak chcesz to użyć, że koniecznie musi to być integer w formie 0[cyfra]? PHP nie ma typów zmiennych (to nie C++), stąd nieważne czy zawartością zmiennej będzie "kdfjgdfklgfdkjgdfjgf" czy "123" to nadal jest to po prostu... Zmienna, a nie string czy integer, możesz tego użyć gdzie Ci się żywnie podoba.
właśnie chce zwrócić bez tego zera wszystkie pierwasze 9 miesiecy maja zera a ja chce bez nich w php
To może coś takiego
$Data = "2014-02-03";
$str = explode("-", "$Data");
$Miesiac = (int) $str[1];
if ($Miesiac[0] == 0) $Miesiac[0] = "";
Możesz też użyć: http://php.net/manual/en/function.intval.php
PS. Do zabaw z datami lepiej korzystać z http://php.net/manual/en/book.datetime.php
zwiro napisał(a):
właśnie chce zwrócić bez tego zera wszystkie pierwasze 9 miesiecy maja zera a ja chce bez nich w php
Czyli ten kod, który dałem.
@Jamnik93 nie można po prostu:
$date_one = "2010-01-12";
$date_two = "2010-05-12";
$date_three = "2010-11-12";
$september = date("n",strtotime($date_one));
$may = date("n",strtotime($date_two));
$november = date("n",strtotime($date_three));
echo $september . " " . $may . " " . $november;
// 1 5 11
Bardzo lubię carbona, to co chcesz osiągnąć sprowadzi się do wywołania jednego gettera:
$now = Carbon::now();
echo $now->month;
$Data="2014-02-03";
$Miesiac=(int)(explode("-",$Data)[1]);
Dlaczego nie klasa DateTime? Przyjmuje w konstruktorze datę w postaci stringa i daje ci masę metod do wykorzystania. Min formatowanie daty.
$date = new /DateTime('2010-02-02');
Var_dump($date->format('m'));
Nie pamiętam czy male m będzie miesiącem z poprzedzającym zerem czy nie ale w manualu znajdziesz pelny opis dostępnych znaczników.