ホームページ  >  記事  >  ウェブフロントエンド  >  Safari と IOS の間で JavaScript の Date オブジェクトで発生する互換性の問題

Safari と IOS の間で JavaScript の Date オブジェクトで発生する互換性の問題

php是最好的语言
php是最好的语言オリジナル
2018-07-28 13:46:191727ブラウズ

最近、編集者は会議室の予約機能を開発中です。この機能は、映画のチケットを購入するときに座席を選択するようなもので、会議室がどの時間帯に空いているか、どのような設備が利用可能かなどがわかります。アプリを作成しているので、アプリは Android と IOS の両方と互換性がある必要があります。最初の開発とデバッグには Google Chrome を使用しましたが、テストには大きな問題が残るとは予想していませんでした。隠れた危険は終わりますか?以下は私のインターフェースです。

Safari と IOS の間で JavaScript の Date オブジェクトで発生する互換性の問題

質問 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 が共有できるように関数を書いて置き換えました。

  1. function GetDateDiff(startDiffTime, endDiffTime) {

  2. /xxxx-xx-xx の時刻形式を xxxx/xx/xx 形式に変換します

  3. startTime = startDiffTime.replace(/-/g, "/");
  4. endTime = endDiffTime.replace(/-/g, "/");
  5. };

質問 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 の新しい日付およびその他の日付関数で遭遇する落とし穴

JavaScript の Date オブジェクト

関連動画:

JS 組み込みオブジェクト - 日付オブジェクト - JavaScript を始めるための基本的なビデオチュートリアル

以上がSafari と IOS の間で JavaScript の Date オブジェクトで発生する互換性の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。