wycinanie miesiąca z daty

wycinanie miesiąca z daty
ZW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 53
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?

J9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
1
Kopiuj
$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.

ZW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 53
0

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

pol90
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1181
0

To może coś takiego

Kopiuj
 $Data = "2014-02-03";
$str = explode("-", "$Data");
$Miesiac = (int) $str[1];
if ($Miesiac[0] == 0) $Miesiac[0] = "";
Tumeg
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 687
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

J9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
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.

DE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1788
0

@Jamnik93 nie można po prostu:

Kopiuj
$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
GU
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wroclaw
  • Postów: 172
0

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

Kopiuj
$now = Carbon::now();

echo $now->month;

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

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
$Data="2014-02-03";
$Miesiac=(int)(explode("-",$Data)[1]);
hywak
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków/Kielce
  • Postów: 17
0

Dlaczego nie klasa DateTime? Przyjmuje w konstruktorze datę w postaci stringa i daje ci masę metod do wykorzystania. Min formatowanie daty.

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.