Ten format jest używany przez valueatrybut HTML i właściwość DOM i jest używany podczas zwykłego przesyłania formularza.
Format prezentacji
Przeglądarki nie mają ograniczeń w sposobie prezentacji daty. W momencie pisania Chrome, Edge, Firefox i Opera mają obsługę daty (patrz tutaj ). Wszystkie wyświetlają selektor daty i formatują tekst w polu wprowadzania.
Urządzenia stacjonarne
W przypadku Chrome, Firefox i Opera formatowanie tekstu pola wejściowego zależy od ustawienia języka przeglądarki. W przypadku Edge jest on oparty na ustawieniu języka Windows. Niestety wszystkie przeglądarki internetowe ignorują formatowanie daty skonfigurowane w systemie operacyjnym. Dla mnie jest to bardzo dziwne zachowanie i coś do rozważenia przy użyciu tego typu danych wejściowych. Na przykład holenderska użytkownicy, którzy posiadają swój system operacyjny lub zestaw językowy przeglądarka en-uszostanie pokazany 01/30/2019zamiast formatu są przyzwyczajeni do: 30-01-2019.
Internet Explorer 9, 10 i 11 wyświetlają pole wprowadzania tekstu w formacie przewodowym.
Urządzenia mobilne
Formatowanie jest specyficzne dla Chrome na Androida. Podejrzewam, że to samo dotyczy innych przeglądarek, chociaż nie byłem w stanie tego zweryfikować.
Chciałbym mieć znacznik czasu JS, a nie format drutu. I jest to sposób na zmianę formatu prezentacji, bardzo trudno jest zachować spójność.
Allan Kimmer Jensen
7
@AllanKimmerJensen chociaż rozumiem twoje myśli. Uważam, że decyzja o użyciu formatu określonego w RFC3339 jest poprawna, ponieważ nie tworzy sprzężenia między HTML a JavaScript. Co do drugiej kwestii, uważam, że z punktu widzenia użyteczności sensowne byłoby, aby użytkownik widział kalendarz zgodnie z jego preferencjami regionalnymi.
David Walschots
10
Jeśli aplikacja to pt_BR, oczekuję wejścia pt_BR. moje ustawienia systemowe nie mają znaczenia. HTML5 potrzebuje jakiegoś sposobu na wymuszenie ustawień regionalnych.
iurisilvio
5
Używam hiszpańskich ustawień regionalnych dla ustawień daty / waluty, ponieważ mieszkam w Hiszpanii, ale moim pierwszym językiem jest angielski i jestem przyzwyczajony do układu klawiatury USA, więc używam klawiatury angielski / amerykański. Moi klienci są francuskojęzycznymi Europejczykami ... Chciałbym wskazać Chrome itp., Aby przestał wyświetlać daty w formacie mm-dd-rrrr!
Łukasz H
6
co za bezużyteczny element, kto do cholery wymyślił te specyfikacje?
boh
143
Ponieważ zadano to pytanie, wiele rzeczy wydarzyło się w świecie internetowym, a jednym z najbardziej ekscytujących jest lądowanie komponentów internetowych . Teraz możesz elegancko rozwiązać ten problem za pomocą niestandardowego elementu HTML5 zaprojektowanego zgodnie z Twoimi potrzebami. Jeśli chcesz zastąpić / zmienić działanie dowolnego tagu HTML, po prostu stwórz swoją grę w domenie-cieniu .
Dobrą wiadomością jest to, że jest już dostępnych wiele płyt kotłowych, więc najprawdopodobniej nie będziesz musiał wymyślić rozwiązania od zera. Wystarczy sprawdzić , co ludzie budują i pomysłów stamtąd.
Możesz zacząć od prostego (i działającego) rozwiązania, takiego jak wprowadzanie daty i godziny dla polimeru, które pozwala na użycie takiego tagu:
lub możesz uzyskać kreatywne i wyskakujące, kompletne selektory dat według własnego stylu , z pożądanym formatowaniem i lokalizacjami, oddzwanianiem i długą listą opcji (masz do dyspozycji cały niestandardowy interfejs API!)
ale czy któreś z nich można zlokalizować? tj. zmień nazwy miesięcy na inne niż angielskie. Czy działają na komputerach i urządzeniach mobilnych?
Sam Hasler,
Jasne, można je zlokalizować. Możesz skorzystać z ustawień regionalnych systemu (np .: is.gd/QSkwAY ) lub podać swoje pliki i18n wewnątrz komponentu web (tj .: is.gd/Ru9U82 ). Jeśli chodzi o przeglądarki mobilne, są one obsługiwane przy użyciu wypełniaczy, choć jeszcze nie w 100% (jeszcze)… Sprawdź link do przeglądarki / wersji, który opublikowałem. Znowu jest to krwawa przewaga. Jeśli patrzysz w przyszłość, jest to świetne rozwiązanie.
Cieszę się, że jest to przydatne. Zaktualizuję odpowiedź wszystkim.
joseldn
@SDude Wygląda na to, że linki, które według Ciebie warte są uwzględnienia, nadal nie są uwzględnione.
Mark Amery
79
Jak wspomniano wcześniej, oficjalnie nie można zmienić formatu. Można jednak stylizować pole, więc (przy niewielkiej pomocy JS) wyświetla datę w pożądanym przez nas formacie. W ten sposób utracono niektóre możliwości manipulowania wprowadzaniem daty, ale jeśli chęć wymuszenia formatu jest większa, to rozwiązanie może być dobrym rozwiązaniem. Pola daty pozostają takie:
Działa ładnie w Chrome na komputery i Safari na iOS (szczególnie pożądane, ponieważ natywnych manipulatorów daty na ekranach dotykowych są nie do pobicia IMHO). Nie sprawdziłem innych, ale nie spodziewaj się niepowodzenia w żadnym pakiecie Webkit.
To nie działa, zmienisz MMMM YYYY DDtylko DDzmiany. -1 za to, przepraszam
Can O 'Spam
3
@SamSwift - czy kliknąłeś „Uruchom” po zmianie wartości? ;)
pmucha
9
Nie, on nie jest. Nie rozumiesz, jak to działa: grasz JS i powinieneś HTML. Zmieniłeś format wejściowy momentfunkcji i nie jest to właściwy sposób. Powinieneś się zmienić, data-date-format="DD-YYYY-MM"a wtedy dostaniesz 09-2015-08, co jest właściwym rezultatem.
pmucha
3
Nie działa ani w Safari, Edge, Opera - co czyni go bezużytecznym
RFC 3339 / ISO 8601 „format drutu”: RRRR-MM-DD. Zgodnie ze specyfikacją HTML5 jest to format, który należy zastosować dla wartości wejściowej po przesłaniu formularza lub na żądanie przez interfejs API DOM. Jest niezależny od regionu i regionu.
Format wyświetlany przez kontrolkę interfejsu użytkownika i akceptowany jako dane wejściowe użytkownika. Zachęcamy dostawców przeglądarek do śledzenia preferencji użytkownika. Na przykład w systemie Mac OS z regionem „Stany Zjednoczone” wybranym w panelu Preferencje języka i tekstu Chrome 20 używa formatu „m / d / rr”.
Specyfikacja HTML5 nie obejmuje żadnego sposobu zastępowania ani ręcznego określania żadnego z tych formatów.
lokalny format daty oznacza, że nasz domyślny format daty telefonu lub format daty lokalizacji?
Govindarao Kondala
2
Zależy od używanej przeglądarki mobilnej. Ale podejrzewam, że to będzie domyślny telefon.
Michael Mior,
2
Format „lokalny” oznacza oparty na lokalizacji geograficznej, co jest prawdopodobnie najgorszym sposobem ustalenia formatu daty. Czy Amerykanin podróżujący do Europy spodziewałby się, że ich smartfon zacznie wyświetlać czas w formacie 24-godzinnym i datami rrrr-mm-dd lub dd / mm / rrrr? Lub vice versa dla Europejczyka w USA?
RobG
10
Google Chrome w swojej ostatniej wersji beta w końcu korzysta z danych wejściowych type=datei ma format DD-MM-YYYY.
Musi być więc sposób na wymuszenie określonego formatu. Tworzę stronę internetową HTML5, a wyszukiwanie dat kończy się teraz niepowodzeniem w różnych formatach.
Wspomniany format DD-MM-RRRR to prawdopodobnie lokalny format kalendarza. Nie jest rozsądne (i, o ile widzę, niemożliwe w ramach obecnych standardów HTML5) wymuszanie określonego formatu na odwiedzających witrynę, ponieważ mogą być one używane w formacie kalendarza innym niż ten, który na nich narzucasz.
David Walschots,
3
Odwołujesz się do formatu prezentacji, ponieważ jeśli spróbujesz odczytać input.val (), Google Chrome (v35) zwróci datę w formacie rrrr-mm-dd, niezależnie od formatu prezentacji;)
Tilt
3
@DavidWalschots, gdyby tylko Amerykanie zdali sobie sprawę z tego, jak nierozsądne jest narzucanie opóźnionego formatu mdy reszcie świata.
user275801
@ user275801 Chociaż zgadzam się, że M-D-Yjest to format nieparzysty. Nie widziałem, żeby Amerykanie narzucali to innym. :-)
David Walschots
2
@DavidWalschots większość oprogramowania i systemów operacyjnych, które widziałem, wymaga „rezygnacji” z amerykańskiego formatu mdy. W tym sensie jest w rzeczywistości „wymuszony”. W rzeczywistości mój Linux ma wszystkie ustawienia regionalne dla Australii, ale moja przeglądarka (amerykańska przeglądarka, jeśli można to tak nazwać) nadal bierze na siebie wyświetlanie wszystkich dat w formacie mdy, w tym przypadku nie jestem w stanie „ rezygnacja ”.
user275801,
5
Wypróbuj to, jeśli potrzebujesz szybkiego rozwiązania Aby rrrr-mm-dd przejść na „dd- wrz -2016”
1) Utwórz w pobliżu wejścia jedną klasę zakresu (działaj jak etykieta)
2) Zaktualizuj etykietę za każdym razem, gdy użytkownik zmieni datę, lub gdy trzeba załadować dane.
Działa z telefonami komórkowymi przeglądarki i zdarzeniami wskaźnikowymi dla IE11 + wymaga jQuery i Jquery Date
<scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script><scriptsrc="http://code.jquery.com/ui/1.9.2/jquery-ui.min.js"></script><inputid="date_input"dateformat="d M y"type="date"/><spanclass="datepicker_label"style="pointer-events: none;"></span>
To nie odpowiada na pytanie i wymaga 2 bibliotek, z których żadna nie jest oznaczona ani poproszona. Nie pozwala też na ręczne wprowadzanie daty.
RobG
nie został poproszony o zmianę, pokaż tylko format ... możesz to zrobić jako podgląd i użyć danych wejściowych ze zdarzeniami zmiany, aby mimo to zaktualizować format.
Miguel
4
Po przeczytaniu wielu dyskusji przygotowałem proste rozwiązanie, ale nie chcę używać wielu Jquery i CSS, tylko trochę javascript.
Jak powiedziano, <input type=date ... >nie jest w pełni zaimplementowany w większości przeglądarek, więc porozmawiajmy o zestawie internetowym, takim jak przeglądarki (chrome).
Używając linuxa, możesz to zmienić, zmieniając zmienną środowiskową LANG, LC_TIMEwydaje się , że nie działa (przynajmniej dla mnie).
Możesz wpisać localeterminal, aby zobaczyć bieżące wartości. Myślę, że tę samą koncepcję można zastosować do IOS.
np .: za pomocą:
LANG=en_US.UTF-8/opt/google/chrome/chrome
Data jest pokazana jako mm/dd/yyyy
Za pomocą:
LANG=pt_BR /opt/google/chrome/chrome
Data jest pokazana jako dd/mm/yyyy
Możesz użyć http://lh.2xlibre.net/locale/pt_BR/ (zmiana pt_BRwedług ustawień regionalnych), aby utworzyć własne ustawienia regionalne i sformatować daty według własnego uznania.
+1 świetnie! using: LANG=ja_JP.UTF-8 chromium-browserzrobił lewę dla mnie. Działa również z Vivaldi i chyba w innych przeglądarkach. Dzięki!
lepe
2
Przeglądarki uzyskują format wprowadzania daty z systemowego formatu daty użytkownika.
(Testowane w obsługiwanych przeglądarkach, Chrome, Edge).
Ponieważ w specyfikacji nie ma obecnie standardu zmieniającego styl kontroli daty, nie jest możliwe zaimplementowanie tego samego w przeglądarkach.
Jednak to zachowanie uzyskiwania formatu daty z ustawień systemowych jest lepsze i zdecydowanie sugeruję, że nie powinniśmy próbować go zastępować. Powodem jest to, że użytkownicy zobaczą format wprowadzania daty taki sam, jak skonfigurowany w systemie / urządzeniu i z którym czują się komfortowo lub dopasowują się do ich ustawień regionalnych.
Pamiętaj, to tylko format interfejsu użytkownika na ekranie, który użytkownicy widzą, w javascript / backend zawsze możesz zachować pożądany format.
@ downvoters, lepiej zostaw komentarz na temat -1, aby poprawić obecne i przyszłe odpowiedzi.
Rahul R.
2
Nie można zmienić przeglądarek internetowych korzystających z komputera użytkownika lub domyślnego formatu daty telefonu komórkowego. Ale jeśli możesz użyć interfejsu jquery i interfejsu jquery, istnieje możliwość wyboru datownika, który można ustawić i który może być wyświetlany w dowolnym formacie, jak chce deweloper. link do selektora dat interfejsu użytkownika jquery znajduje się na tej stronie http://jqueryui.com/datepicker/ można znaleźć wersję demonstracyjną, a także kod i dokumentację lub link do dokumentacji
Edycja: -Okazuje się, że chrome używa ustawień języka, które są domyślnie równe ustawieniom systemu, ale użytkownik może je zmienić, ale programista nie może zmusić użytkowników do zrobienia tego, więc musisz użyć innych rozwiązań js, takich jak mówię, że możesz przeszukiwać internet z zapytaniami takimi jak selektory dat javascript lub selektor dat jquery
To nie dotyczy zadanego pytania; jesteś analizowania formatu niestandardowego tu nie zmienia format, że <input>używa do pokazania wartości.
Mark Amery
to tylko obejście
Hezbullah Shah
0
Przeszukałem ten problem 2 lata temu, a moje wyszukiwania w Google ponownie prowadzą do tego pytania. Nie marnuj czasu, próbując poradzić sobie z tym za pomocą czystego JavaScript. Marnuję czas próbując to zrobić dd/mm/yyyy. Nie ma kompletnych rozwiązań, które pasowałyby do wszystkich przeglądarek. Dlatego zalecam użycie jQuerydatepicker lub zalecenie klientowi pracy z domyślnym formatem daty
Wiem, że to stary post, ale pojawia się jako pierwsza sugestia w wyszukiwarce Google, krótka odpowiedź nie, zalecana odpowiedź użytkownika niestandardowa data piker, poprawną odpowiedzią, której używam, jest użycie pola tekstowego do symulacji wprowadzania daty i wykonania dowolnego formatu, jaki chcesz , oto kod
<html><body>
date :
<spanstyle="position: relative;display: inline-block;border:1px solid #a9a9a9;height:24px;width:500px"><inputtype="date"class="xDateContainer"onchange="setCorrect(this,'xTime');"style="position: absolute;opacity:0.0;height:100%;width:100%;"><inputtype="text"id="xTime"name="xTime"value="dd / mm / yyyy"style="border: none;height:90%;"tabindex="-1"><spanstyle="display: inline-block;width:20px;z-index:2;float: right;padding-top:3px;"tabindex="-1">▼</span></span><scriptlanguage="javascript">var matchEnterdDate=0;//function to set back date opacity for non supported browsers
window.onload =function(){var input = document.createElement('input');
input.setAttribute('type','date');
input.setAttribute('value','some text');if(input.value ==="some text"){
allDates = document.getElementsByClassName("xDateContainer");
matchEnterdDate=1;for(var i =0; i < allDates.length; i++){
allDates[i].style.opacity ="1";}}}//function to convert enterd date to any formatfunction setCorrect(xObj,xTraget){var date =newDate(xObj.value);var month = date.getMonth();var day = date.getDate();var year = date.getFullYear();if(month!='NaN'){
document.getElementById(xTraget).value=day+" / "+month+" / "+year;}else{if(matchEnterdDate==1){document.getElementById(xTraget).value=xObj.value;}}}</script></body></html>
1 - należy pamiętać, że ta metoda działa tylko w przypadku przeglądarki obsługującej typ daty.
2- pierwsza funkcja w kodzie JS jest przeznaczona dla przeglądarki, która nie obsługuje typu daty i ustawia wygląd na normalną metodę wprowadzania tekstu.
3- jeśli użyjesz tego kodu do wielokrotnego wprowadzania daty na swojej stronie, zmień ID „xTime” wpisywanego tekstu zarówno w wywołaniu funkcji, jak i samego wejścia na coś innego, i oczywiście użyj nazwy wejścia, które chcesz dla prześlij formularz.
4-na drugiej funkcji możesz użyć dowolnego formatu zamiast dnia + „/” + miesiąc + „/” + rok, na przykład rok + „/” + miesiąc + „/” + dzień, a podczas wprowadzania tekstu użyj symbolu zastępczego lub wartości jako rrrr / mm / dd dla użytkownika podczas ładowania strony.
dd/mm/yyyy
. po prostu użyj innej biblioteki, takiej jak date lub jQuery datepickerOdpowiedzi:
Zmiana formatu jest niemożliwa
Musimy rozróżniać między formatem przewodowym a formatem prezentacji przeglądarki.
Format drutu
Specyfikacja wejścia HTML5 termin odnosi się do specyfikacji RFC 3339 , który określa format pełny bieżąco równa:
yyyy-mm-dd
. Więcej informacji znajduje się w sekcji 5.6 specyfikacji RFC 3339.Ten format jest używany przez
value
atrybut HTML i właściwość DOM i jest używany podczas zwykłego przesyłania formularza.Format prezentacji
Przeglądarki nie mają ograniczeń w sposobie prezentacji daty. W momencie pisania Chrome, Edge, Firefox i Opera mają obsługę daty (patrz tutaj ). Wszystkie wyświetlają selektor daty i formatują tekst w polu wprowadzania.
Urządzenia stacjonarne
W przypadku Chrome, Firefox i Opera formatowanie tekstu pola wejściowego zależy od ustawienia języka przeglądarki. W przypadku Edge jest on oparty na ustawieniu języka Windows. Niestety wszystkie przeglądarki internetowe ignorują formatowanie daty skonfigurowane w systemie operacyjnym. Dla mnie jest to bardzo dziwne zachowanie i coś do rozważenia przy użyciu tego typu danych wejściowych. Na przykład holenderska użytkownicy, którzy posiadają swój system operacyjny lub zestaw językowy przeglądarka
en-us
zostanie pokazany01/30/2019
zamiast formatu są przyzwyczajeni do:30-01-2019
.Internet Explorer 9, 10 i 11 wyświetlają pole wprowadzania tekstu w formacie przewodowym.
Urządzenia mobilne
Formatowanie jest specyficzne dla Chrome na Androida. Podejrzewam, że to samo dotyczy innych przeglądarek, chociaż nie byłem w stanie tego zweryfikować.
źródło
Ponieważ zadano to pytanie, wiele rzeczy wydarzyło się w świecie internetowym, a jednym z najbardziej ekscytujących jest lądowanie komponentów internetowych . Teraz możesz elegancko rozwiązać ten problem za pomocą niestandardowego elementu HTML5 zaprojektowanego zgodnie z Twoimi potrzebami. Jeśli chcesz zastąpić / zmienić działanie dowolnego tagu HTML, po prostu stwórz swoją grę w domenie-cieniu .
Dobrą wiadomością jest to, że jest już dostępnych wiele płyt kotłowych, więc najprawdopodobniej nie będziesz musiał wymyślić rozwiązania od zera. Wystarczy sprawdzić , co ludzie budują i pomysłów stamtąd.
Możesz zacząć od prostego (i działającego) rozwiązania, takiego jak wprowadzanie daty i godziny dla polimeru, które pozwala na użycie takiego tagu:
lub możesz uzyskać kreatywne i wyskakujące, kompletne selektory dat według własnego stylu , z pożądanym formatowaniem i lokalizacjami, oddzwanianiem i długą listą opcji (masz do dyspozycji cały niestandardowy interfejs API!)
Zgodny ze standardami, bez włamań.
Dokładnie sprawdź dostępne wielopełniacze , obsługiwane przez nie przeglądarki i wersje , a jeśli pokryje wystarczającą część bazy użytkowników… Jest rok 2018, więc są szanse, że z pewnością obejmie większość użytkowników.
Mam nadzieję, że to pomoże!
źródło
Jak wspomniano wcześniej, oficjalnie nie można zmienić formatu. Można jednak stylizować pole, więc (przy niewielkiej pomocy JS) wyświetla datę w pożądanym przez nas formacie. W ten sposób utracono niektóre możliwości manipulowania wprowadzaniem daty, ale jeśli chęć wymuszenia formatu jest większa, to rozwiązanie może być dobrym rozwiązaniem. Pola daty pozostają takie:
Reszta to trochę CSS i JS: http://jsfiddle.net/g7mvaosL/
Działa ładnie w Chrome na komputery i Safari na iOS (szczególnie pożądane, ponieważ natywnych manipulatorów daty na ekranach dotykowych są nie do pobicia IMHO). Nie sprawdziłem innych, ale nie spodziewaj się niepowodzenia w żadnym pakiecie Webkit.
źródło
MMMM YYYY DD
tylkoDD
zmiany. -1 za to, przepraszammoment
funkcji i nie jest to właściwy sposób. Powinieneś się zmienić,data-date-format="DD-YYYY-MM"
a wtedy dostaniesz 09-2015-08, co jest właściwym rezultatem.Ważne jest rozróżnienie dwóch różnych formatów :
Specyfikacja HTML5 nie obejmuje żadnego sposobu zastępowania ani ręcznego określania żadnego z tych formatów.
źródło
value
atrybut jest zgodny z formatem drutu lub co jest wyświetlane użytkownikowi?value
atrybut zawsze odpowiada formatowi drutu.Wierzę, że przeglądarka użyje lokalnego formatu daty. Nie sądzę, że można to zmienić. Możesz oczywiście użyć niestandardowego selektora dat.
źródło
Google Chrome w swojej ostatniej wersji beta w końcu korzysta z danych wejściowych
type=date
i ma formatDD-MM-YYYY
.Musi być więc sposób na wymuszenie określonego formatu. Tworzę stronę internetową HTML5, a wyszukiwanie dat kończy się teraz niepowodzeniem w różnych formatach.
źródło
M-D-Y
jest to format nieparzysty. Nie widziałem, żeby Amerykanie narzucali to innym. :-)Wypróbuj to, jeśli potrzebujesz szybkiego rozwiązania Aby rrrr-mm-dd przejść na „dd- wrz -2016”
1) Utwórz w pobliżu wejścia jedną klasę zakresu (działaj jak etykieta)
2) Zaktualizuj etykietę za każdym razem, gdy użytkownik zmieni datę, lub gdy trzeba załadować dane.
Działa z telefonami komórkowymi przeglądarki i zdarzeniami wskaźnikowymi dla IE11 + wymaga jQuery i Jquery Date
źródło
Po przeczytaniu wielu dyskusji przygotowałem proste rozwiązanie, ale nie chcę używać wielu Jquery i CSS, tylko trochę javascript.
Kod HTML:
Kod CSS:
Kod JavaScript:
Wynik:
źródło
Jak powiedziano,
<input type=date ... >
nie jest w pełni zaimplementowany w większości przeglądarek, więc porozmawiajmy o zestawie internetowym, takim jak przeglądarki (chrome).Używając linuxa, możesz to zmienić, zmieniając zmienną środowiskową
LANG
,LC_TIME
wydaje się , że nie działa (przynajmniej dla mnie).Możesz wpisać
locale
terminal, aby zobaczyć bieżące wartości. Myślę, że tę samą koncepcję można zastosować do IOS.np .: za pomocą:
Data jest pokazana jako
mm/dd/yyyy
Za pomocą:
Data jest pokazana jako
dd/mm/yyyy
Możesz użyć http://lh.2xlibre.net/locale/pt_BR/ (zmiana
pt_BR
według ustawień regionalnych), aby utworzyć własne ustawienia regionalne i sformatować daty według własnego uznania.Bardziej zaawansowane odniesienie do zmiany domyślnej daty systemowej: https://ccollins.wordpress.com/2009/01/06/how-to-change-date-formats-on-ubuntu/ i https: // askubuntu. com / pytania / 21316 / how-can-i-customize-a-system-locale
Możesz zobaczyć swój prawdziwy format daty, używając
date
:Ale ponieważ
LC_TIME
id_fmt
wydaje się być odrzucony przez chrome (i myślę, że jest to błąd w webkicie lub chrome), niestety nie działa . : „(Niestety odpowiedź brzmi:
LANG
czy zmienna środowiskowa JEŻELI nie rozwiąże problemu, nie ma jeszcze sposobu.źródło
LANG=ja_JP.UTF-8 chromium-browser
zrobił lewę dla mnie. Działa również z Vivaldi i chyba w innych przeglądarkach. Dzięki!Przeglądarki uzyskują format wprowadzania daty z systemowego formatu daty użytkownika.
(Testowane w obsługiwanych przeglądarkach, Chrome, Edge).
Ponieważ w specyfikacji nie ma obecnie standardu zmieniającego styl kontroli daty, nie jest możliwe zaimplementowanie tego samego w przeglądarkach.
Pamiętaj, to tylko format interfejsu użytkownika na ekranie, który użytkownicy widzą, w javascript / backend zawsze możesz zachować pożądany format.
Zobacz stronę programistów Google na tym samym.
źródło
Nie można zmienić przeglądarek internetowych korzystających z komputera użytkownika lub domyślnego formatu daty telefonu komórkowego. Ale jeśli możesz użyć interfejsu jquery i interfejsu jquery, istnieje możliwość wyboru datownika, który można ustawić i który może być wyświetlany w dowolnym formacie, jak chce deweloper. link do selektora dat interfejsu użytkownika jquery znajduje się na tej stronie http://jqueryui.com/datepicker/ można znaleźć wersję demonstracyjną, a także kod i dokumentację lub link do dokumentacji
Edycja: -Okazuje się, że chrome używa ustawień języka, które są domyślnie równe ustawieniom systemu, ale użytkownik może je zmienić, ale programista nie może zmusić użytkowników do zrobienia tego, więc musisz użyć innych rozwiązań js, takich jak mówię, że możesz przeszukiwać internet z zapytaniami takimi jak selektory dat javascript lub selektor dat jquery
źródło
znalazłem sposób na zmianę formatu, jest to trudny sposób, właśnie zmieniłem wygląd pól wprowadzania daty za pomocą tylko kodu CSS.
źródło
Ponieważ post jest aktywny 2 miesiące temu. więc pomyślałem, że mogę również wnieść swój wkład.
W moim przypadku otrzymuję datę z czytnika kart w formacie dd / mm / rrrr.
co robię. Na przykład
co robi kod:
Wszystko to odbywa się w jednym wierszu.
myślałem, że to komuś pomoże, więc napisałem to.
źródło
<input>
używa do pokazania wartości.Przeszukałem ten problem 2 lata temu, a moje wyszukiwania w Google ponownie prowadzą do tego pytania. Nie marnuj czasu, próbując poradzić sobie z tym za pomocą czystego JavaScript. Marnuję czas próbując to zrobić
dd/mm/yyyy
. Nie ma kompletnych rozwiązań, które pasowałyby do wszystkich przeglądarek. Dlatego zalecam użyciejQuery
datepicker lub zalecenie klientowi pracy z domyślnym formatem datyźródło
Wiem, że to stary post, ale pojawia się jako pierwsza sugestia w wyszukiwarce Google, krótka odpowiedź nie, zalecana odpowiedź użytkownika niestandardowa data piker, poprawną odpowiedzią, której używam, jest użycie pola tekstowego do symulacji wprowadzania daty i wykonania dowolnego formatu, jaki chcesz , oto kod
1 - należy pamiętać, że ta metoda działa tylko w przypadku przeglądarki obsługującej typ daty.
2- pierwsza funkcja w kodzie JS jest przeznaczona dla przeglądarki, która nie obsługuje typu daty i ustawia wygląd na normalną metodę wprowadzania tekstu.
3- jeśli użyjesz tego kodu do wielokrotnego wprowadzania daty na swojej stronie, zmień ID „xTime” wpisywanego tekstu zarówno w wywołaniu funkcji, jak i samego wejścia na coś innego, i oczywiście użyj nazwy wejścia, które chcesz dla prześlij formularz.
4-na drugiej funkcji możesz użyć dowolnego formatu zamiast dnia + „/” + miesiąc + „/” + rok, na przykład rok + „/” + miesiąc + „/” + dzień, a podczas wprowadzania tekstu użyj symbolu zastępczego lub wartości jako rrrr / mm / dd dla użytkownika podczas ładowania strony.
źródło