最近、問題が発生しました。つまり、フォームで日付を取得し、json を介してバックグラウンドに送信するときに、Date.parse(str) 関数が ff: NAN でエラーを報告しました。
いくつかの情報を検索した結果、Date.parse() 関数には日付形式の要件があることがわかりました。詳細については、Date.parse 関数を参照してください。
js 操作日の場合:
日付オブジェクトを作成します。
var objDate=new Date([引数リスト]);
パラメータ形式には次の 5 種類があります。
次のようにコードをコピーします。
view plainnew Date("月 dd,yyyy hh:mm:ss");
new Date("yyyy月dd日");
新しい日付(yyyy,mth,dd,hh,mm,ss);
新しい日付(yyyy,mth,dd);
新しい日付(ミリ秒);
例証します:
month:1月から12月までの月の名前を英語で示します。
mth: 月を 0 (1 月) から 11 (12 月) までの整数で表します。
コンテンツ
dd: 1 から 31 までの日付を示します。
yyyy: 4 桁の年
hh: 時間、0 (真夜中) から 23 (午後 11 時)
mm: 分、0 ~ 59 の整数
ss: 秒、0 ~ 59 の整数
ms: ミリ秒。作成される時刻と 1970 年 1 月 1 日の GMT 時刻との間のミリ秒数を示す 0 以上の整数。
私が見つけたもの:
Javascript の日付構造では new Date("yyyy/MM/dd") もサポートできます。MM は 0 (1 月) から 11 (12 月) までの月を表す整数であるため、正規表現を使用すると非常に便利です。文字列の日付を変換します。
テストコード:
次のようにコードをコピーします。
<mce:script type="text/javascript"><!--
document.write("<br/>" + new Date("2009 年 2 月 3 日"));
document.write("<br/>" + new Date("2009 年 2 月 3 日 10:52:03"));
document.write("<br/>");
document.write("<br/>" + new Date(2009,1,3));
document.write("<br/>" + new Date(2009,1,3,10,52,03));
document.write("<br/>");
document.write("<br/>" + new Date(Date.parse("2009 年 2 月 3 日")));
document.write("<br/>" + new Date(Date.parse("2009 年 2 月 3 日 10:52:03")));
document.write("<br/>" + new Date(Date.parse(2009,1,3))); //出力: NAN
document.write("<br/>" + new Date(Date.parse(2009,1,3,10,52,03))); //出力: NAN
document.write("<br/>" + new Date(Date.parse("2009/02/03")));
document.write("<br/>");
document.write("<br/>" + new Date("2009/02/03"));
document.write("<br/>" + new Date("2009/02/03 11:12:13"));
document.write("<br/>" + new Date("2009-02-03")); //出力: NAN
// --></mce:script>
出力結果:
火曜日 2 月 3 日 00:00:00 UTC+0800 2009
火曜日 2 月 3 日 10:52:03 UTC+0800 2009
火曜日 2 月 3 日 00:00:00 UTC+0800 2009
火曜日 2 月 3 日 10:52:03 UTC+0800 2009
火曜日 2 月 3 日 00:00:00 UTC+0800 2009
火曜日 2 月 3 日 10:52:03 UTC+0800 2009
NaN
NaN
火曜日 2 月 3 日 00:00:00 UTC+0800 2009
火曜日 2 月 3 日 00:00:00 UTC+0800 2009
火曜日 2 月 3 日 11:12:13 UTC+0800 2009
NaN
-------------------
次のようにコードをコピーします。
window.onload=function(){
var dependencyVal="2005-3-4";
//日付文字列に基づいて日付に変換します
var regEx = new RegExp("//-","gi");
dependedVal=dependedVal.replace(regEx,"/");
//dependedVal=dependedVal.replace("//-","/");//これは機能しません
アラート(依存値)
//解析には2005/3/4の形式が必要です
var ミリ秒=Date.parse(dependedVal);
アラート(ミリ秒)
vardependentDate=新しい日付();
dependentDate.setTime(ミリ秒);
var now = new Date();
//括弧、優先課題、無力感に注意してください
alert("離れている年数:"+(now.getFull Year() -dependentDate.getFull Year()));
}
実際、日付はブラウザとサーバーの間でミリ秒値を介して送信される必要があります。そうしないと、400 エラーが報告されます。