最近、編集者は会議室の予約機能を開発中です。この機能は、映画のチケットを購入するときに座席を選択するようなもので、会議室がどの時間帯に空いているか、どのような設備が利用可能かなどがわかります。アプリを作成しているので、アプリは Android と IOS の両方と互換性がある必要があります。最初の開発とデバッグには Google Chrome を使用しましたが、テストには大きな問題が残るとは予想していませんでした。隠れた危険は終わりますか?以下は私のインターフェースです。
質問 1:
このインターフェースは、JavaScript で日付オブジェクトをインスタンス化するときに、多くの日付型の計算を使用します。
var date =new Date();
上記のコードは、現在の日付を取得するものです。コード スニペットは、Firefox、Chrome、Safari ブラウザーで実行できます。しかし、文字列に基づいて日付を取得したい場合、問題が発生します。以下のコードを見てください。
var date =new Date("2016-05-31 08:00");
このコードは、文字で指定された日付を取得するものです。Firefox および Chrome で実行できますが、Safari に配置すると、エラーが報告されます。これは、数値ではないことを意味します。このエラーのせいで、私は当時、私が開発したインターフェイスを正常に実行できませんでした。私は、そのほとんどすべてが値の取得や値の割り当てなど、時間に関連する 300 行の js を書きました。現在、IOS はサポートしていません。 。 。 。 。 。 。
オンラインで検索して次のようなコードを書きました:
var date =new Date("2016/05/31 08:00");
この方法で Android と IOS が共有できるように関数を書いて置き換えました。
function GetDateDiff(startDiffTime, endDiffTime) {
質問 2:
コントロールの type= の場合、新しいカレンダー コントロールがあります。 「datetime-local」です。Chrome の場合、コントロールの日付表示形式は 2016/05/30 08:00、Safari の場合、日付表示形式は 2016-05-31T08:00 です。 JQuery を使用して値を取得および割り当てます。 このメソッドを使用して値を割り当てる必要がある場合: このカレンダー コントロールの ID が timeDate の場合、コードは次のようになります:
$("#timeDate').val("2016-05-30T08:30");
$("#timeDate').val(" を使用) 2016/05/30 08:30") ; エラーが報告されます。
関連記事:
Safari の JavaScript の新しい日付およびその他の日付関数で遭遇する落とし穴
関連動画:
JS 組み込みオブジェクト - 日付オブジェクト - JavaScript を始めるための基本的なビデオチュートリアル
以上がSafari と IOS の間で JavaScript の Date オブジェクトで発生する互換性の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。