wycinanie miesiąca z daty

0

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?

1
$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.

0

właśnie chce zwrócić bez tego zera wszystkie pierwasze 9 miesiecy maja zera a ja chce bez nich w php

0

To może coś takiego

 $Data = "2014-02-03";
$str = explode("-", "$Data");
$Miesiac = (int) $str[1];
if ($Miesiac[0] == 0) $Miesiac[0] = "";
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

0
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.

0

@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
0

Bardzo lubię carbona, to co chcesz osiągnąć sprowadzi się do wywołania jednego gettera:

$now = Carbon::now();

echo $now->month;

http://carbon.nesbot.com/docs/#api-getters

0
$Data="2014-02-03";
$Miesiac=(int)(explode("-",$Data)[1]);
0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1