首頁 > web前端 > js教程 > 主體

JavaScript中的Date物件在Safari與IOS遇到的相容問題

php是最好的语言
發布: 2018-07-28 13:46:19
原創
1803 人瀏覽過

最近小編在做一個會議室預定的功能,這個功能就像在買電影票時選擇座位一樣,看看會議室的哪個時間段空閒,有什麼設備等等。由於我做的是APP,APP既要兼容Android,又要兼容IOS,剛開始的開發與調試我都是用谷歌瀏覽器幹的,我沒有用其它瀏覽器進行測試,誰知道最後遺留一個很大的隱患。下面是我的介面。

JavaScript中的Date物件在Safari與IOS遇到的相容問題

 問題一:

 這個介面運用了大量的日期類型的計算,當我們用JavaScript實例化一個日期物件時,我們可以這樣做:

var date =new Date();
登入後複製

 上面這段程式碼是取得目前日期,這段程式碼在Firefox、Chrome、Safari瀏覽器中都可以運作。但是如果我想根據字串獲取日期,問題就來了。看下面程式碼。

var date =new Date("2016-05-31 08:00");
登入後複製

 這段程式碼是取得字元中指定的日期,它Firefox、Chrome中就能運行,但是放在Safari就會報錯,錯誤是NaN,意思是Not a Number。就是因為這個錯,蘋果手機無法正常運作我開發的這個介面,當時都快鬱悶死了,我寫了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. #};

# 問題二:

   HTML5新增了日曆控件,如果將控件的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");就會報錯。

相關文章:

JavaScript的new date等日期函數在safari中遇到的坑

JavaScript中Date物件

相關影片:

JS內建物件-Date日期物件-JavaScript入門基礎視頻教程

以上是JavaScript中的Date物件在Safari與IOS遇到的相容問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板