web-dev-qa-db-ja.com

入力日付形式をdd / mm / yyyyに強制する方法は?

少し問題があります。 Webシステムを開発していますが、フォームフィールドタイプの日付が頭痛の種です。システムはブラジルのみのユーザー向けであり、日付形式はdd/mm/yyyyである必要があります。ポルトガル語を使用するコンピューターからサイトにアクセスすると、HTMLフォームフィールドタイプの日付は希望どおりに機能します。ただし、コンピューター言語でサイトにアクセスすると、英語の日付形式はyyyy-mm-ddになります。ユーザーはコンピューターの日付形式が変更されていることに気付かないこともあるが、ユーザーは日付をdd/mm/yyyyの形式で表示したい場合があるため、これは問題です。

必要なのは、サイトにアクセスするためのマシン設定に関係なく、追加のJavaScriptライブラリを使用せずにdd/mm/yyyy形式であるということです。

使用されるコードは次のとおりです。

<input type="date" id="date">
13
Isaías Faria

そのようなことはありません。 input type=dateは、システムのデフォルトが何であれそれをGUIに表示しますが、常にISO形式(yyyy-mm-dd)で値を保存します。すべてのブラウザがこれをサポートしているわけではないことに注意してください。したがって、まだこの入力タイプに依存することはお勧めできません。

これが企業の問題である場合、すべてのコンピューターでローカル地域形式(dd-mm-yyyy)を使用するように強制すると、UIにこの形式で表示されます(地域設定を変更する前にwufooリンクを参照して、ブラウザーを再度開く必要があります) 。

最善の方法は、JavaScriptベースのコンポーネントを使用することです。このコンポーネントを使用すると、任意にカスタマイズできます。

5
Jimmy Chandra

コンピューターの設定に関係なく一定の日付形式を使用するには、3つの異なる入力要素を使用して、それぞれ日、月、年をキャプチャする必要があります。ただし、次のように有効な日付があることを確認するには、ユーザー入力を検証する必要があります

<input id="txtDay" type="text" placeholder="DD" />

<input id="txtMonth" type="text" placeholder="MM" />

<input id="txtYear" type="text" placeholder="YYYY" />
<button id="but" onclick="validateDate()">Validate</button>


  function validateDate() {
    var date = new Date(document.getElementById("txtYear").value, document.getElementById("txtMonth").value, document.getElementById("txtDay").value);

    if (date == "Invalid Date") {
        alert("jnvalid date");

    }
}
2