uzupełnianie daty usera o -00-00 |
uzupełnianie daty usera o -00-00 |
23.04.2012, 16:21:55
Post
#1
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 30.01.2008 Ostrzeżenie: (0%) |
Witam
Przygotowuję bazę w której inf. historyczne mają daty dzienne, ale userzy często wpisują tylko rok Daty przechowuje w polu "data" o formacie yyyy-mm-dd Jakiej użyć funkcji żeby pomimo wprowadzeni przez usera samego roku, była ona zapisana poprawnie (uzupełniona brakującymi zerami) - strtotime ? moje próby zbudowania ormuły kończą się fiaskiem i jeszcze pytanie, czy przy okazji niedało by się zrobić tak aby inne formaty daty - np. 12.04.0212 też były przeformatowywane. (to drugie nie jest konieczne) -------------------- Genealogia Polaków
|
|
|
23.04.2012, 19:39:13
Post
#2
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 4 Dołączył: 27.01.2012 Skąd: Gliwice Ostrzeżenie: (0%) |
Najlepiej jest skorzystać z DateTime'a
jednak po wpisaniu samego roku np. 1987 będzie trzeba to przewidzieć ręcznie, ponieważ klasa zwróci dzisięjszą datę np. przez sprawdzanie długości stringa i odpowiedni validator. Jeżeli strlen == 4 wtedy doklejamy konkretny dzień i miesiąc, jeżeli 10-12 to data jest prawidłowa, w przeciwnym wypadku zwróci komunikat błędu. Można w drugim przypadku porównać z aktualną datą (drugi obiekt DateTime) - wtedy będzie bezpieczniej. -------------------- Zapraszam do głosowania na agendę PHPCon Poland 2013 http://www.phpcon.pl/2013/pl/agenda.
--- Piotr Pasich piotr.pasich@xsolve.pl www.xsolve.pl |
|
|
23.04.2012, 20:04:37
Post
#3
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 30.01.2008 Ostrzeżenie: (0%) |
@piotr.pasich - dzięki, ale ...
... kurcze - nie mam pojęcia jak to odnieść do mojego problemu mam imput <input name="data" type="text" value=""> gdzie użytkownik powinien wprowadzić datę 1780-00-00 ale wprowadza tylko 1780 addWord wprowadza dane do tabeli "tabela" $addWord=mysql_query("INSERT INTO 'tabela' ('data'....) VALUES ('$data'....)", $db) i wówczas pole zapełniane jest tylko zerami 0000-00-00 Nie wiem jak dodać to co napisałeś A nie dało by się np. w INSERCIE wartość "1780" uzupełnić poleceniem RPAD a potem zamienić na datę ? Było by to o tyle korzystne że gdyby ktoś wstawił 1780-04 to też by się poprawnie dodało ===== spróbowałem RPAD('$data',10,'-00-00') i działa jeśli się wpisze 1780 lub 1780-04 to już prawie ideał i na tym poprzestanę ale fajnie by było żeby funkcja umiała też przetwarzać formaty np. 1.6.1780 lub 21.06.1780 lub 21/6/1780 lub 06-1780 lub 1780.06.31 itp ... ale to już chyba zbyt męcząca sprawa Ten post edytował Dopler 23.04.2012, 22:07:38 -------------------- Genealogia Polaków
|
|
|
25.04.2012, 09:10:22
Post
#4
|
|
Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) |
to oczywiscie prymitywne rozwiazanie;) -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
25.04.2012, 10:22:58
Post
#5
|
|
Grupa: Zarejestrowani Postów: 915 Pomógł: 210 Dołączył: 8.09.2009 Skąd: Tomaszów Lubelski/Wrocław Ostrzeżenie: (0%) |
Kolumna `data` jest typu DATE?
Najlepiej skorzystaj z jakiegoś Datepickera w JS. Ten post edytował redeemer 25.04.2012, 10:23:10 -------------------- |
|
|
25.04.2012, 11:29:33
Post
#6
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 30.01.2008 Ostrzeżenie: (0%) |
tak - kolumna jest typu "DATE"
Datapicker to trochę jak z armatą na muchę chyba - ale dzięki - trochę trudno zrozumieć dokładnie jak to wszystko działa a typowe opisy funkcji używają takiego języka że człowiek niezaawansowany gubi wątek po pierszych słowach. -------------------- Genealogia Polaków
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 07:05 |