0

IE8の日付オブジェクトといくつかの古いブラウザで問題が発生しました。ウェブサイトで私は日付を保持する非表示の入力を持っています、そして変更後、新しい日付はそのフィールドにあるべきです。

私のマシンではすべてが正常ですが、他のいくつかのマシンではNaN-NaN-NaN、それが私のコードです。

var date = new Date($('#curDate').val());
//date.setDate(date.getDate() - 7);
var dateMsg = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
alert(dateMsg);

このファイル(php)を実行すると、非表示の入力で、現在の週2013-03-25からの月曜日の日付を取得します。

このアラートNaN-N..は、Win XP IE8で私を返します。非常に古いMacでは、オブジェクトの問題を確認します。日付の値を取得してJavaScriptでオブジェクトに変換するにはどうすればよいですか?

4

3 に答える 3

2

絶対に使用new Date(some_string)しないでください。ユーザーのロケールに依存するため、信頼性が低くなります。

文字列をyy/mm/dd自分でコンポーネントに分割してから、new Date(y, m - 1, d)

于 2013-03-25T16:16:05.627 に答える
1

ハイフンに問題があります。

ハイフン('-')をスラッシュ('/')で変換します

var dateStr=$('#curDate').val();
var a=dateStr.split(" ");
var d=a[0].split("-");
var t=a[1].split(":");
var date = new Date(d[0],(d[1]-1),d[2],t[0],t[1],t[2]);

また

var date=new Date(convertToSlash($('#curDate').val()));

    function convertToSlash(string){
      var response = string.replace(/-/g,"/");
      return response;
    }
于 2013-03-25T16:16:09.727 に答える
0

新しいDate(some_string)形式を使用することもできます。信頼できます。ただし、日付文字列はyyyy / mm/ddのISO形式である必要があります。

于 2013-06-03T07:48:39.853 に答える