1

Web サイトを作成しましたが、1 つの入力は を使用した日付<input type="date" name="rcdate" />です。これは非常に便利ですが、Chrome でしか機能しません。PHPを使用して処理すると、出力はYYYY-MM-DD形式になります。

問題は、誰かが古いブラウザ (注: Firefox、IE) を使用し、UI が機能せず (注: テキストボックスが表示されます)、ユーザーが自分で日付を入力するように求められ、形式が常に一貫性がなく、MySQL 形式である場合です。日付は YYYY-MM-DD です。

HTML バージョン チェッカーを提供して、自分のブラウザが私のサイトと互換性がないというメッセージがユーザーに表示されるようにすることはできますか? ありがとう。これを回避する方法に関する他の提案も大歓迎です。

編集:日付を処理するための私のコードは次のとおりです:

<?php
if(isset($_POST['rcdate'])){ $rcdate= $_POST['rcdate']; }
$strSQL = "Insert INTO nqascorecard (
    `RcDate`
    VALUES (
    '$rcdate'
    )";
$rs = mysql_query($strSQL) or die(mysql_error());
?>
4

3 に答える 3

3

Modernizr のようなものを使用して日付タイプがサポートされているかどうかを検出し、サポートされていない場合は日付ピッカーの JavaScript フォールバックを実装する方がはるかに優れています。日付の入力方法をサポートしているデスクトップ ブラウザーは多くありません。http://caniuse.com/#feat=input-datetimeを参照してください

于 2013-06-11T00:26:11.497 に答える
2

一般に「HTML バージョンを確認する」方法はありませんが、機能チェックModernizrで使用するか、JavaScript コードで直接使用できます。つまり、ブラウザがtype=date属性を認識しているか (DOM に反映されているか) などを確認できます。input type=dateただし、ここでの問題は、機能 ( など) がサポートされていない場合はどうすればよいかということです。JavaScript ウィジェットを使用するなど、優れたバックアップ プランがある場合は、代わりに input type=date単純にそれを使用してみませんか? さらに、機能チェックが実際には機能しない可能性があります。ブラウザーはtype=dateそれを実装する適切な UI を認識しても提供できない可能性があります。

へのサポートinput type=dateが広まり、適切にローカライズされた場合 (現在の HTML5 ドラフトはこれについて混乱しており、実装はページロケールではなくシステムロケールによってローカライズされる傾向があります)、単純なバックアップと共に使用できます:サポートしていない場合 (単純なテキスト入力ボックスにフォールバックするため)、ユーザーに yyyy-mm-dd 形式を使用するように指示する指示を挿入します。または、より安全を期すために、それらの命令を静的コンテンツに入れ、ブラウザが実際にサポートしていることを検出できる場合は、JavaScript でそれらを削除します。input type=dateinput type=date

于 2013-06-11T05:58:51.337 に答える
1

w3schools http://www.w3schools.com/html/html5_form_input_types.aspによると、HTML5 の「日付」入力タイプは現在、Firefox と Internet Explorer ではサポートされていません。

ただし、ブラウザ間で互換性があるように構築された、この 1 つの形式の jQuery UI http://jqueryui.com/datepicker/のような JavaScript ベースのカレンダーがあるため、そのようなものを使用することをお勧めします。ブラウザ スニッフィング。

于 2013-06-11T00:25:53.977 に答える