0

クエリ文字列値を Javascript 日付オブジェクトに変換してから、ISO 日付形式に変換しようとしています。

3 つのボタンがあります - 1 つはクエリ文字列を抽出して値を表示します - 適切に動作します.

コードを以下に示します。querstring 値を Javascript Date に変換するにはどうすればよいですか?

<head>
<SCRIPT LANGUAGE="JavaScript" SRC="./date.format.js">
</SCRIPT>
</head>
<script>
function DateTest(dt)
{
var myDate = new Date(dt);
alert(myDate);
var newDate = myDate.format("isoDateTime");
document.write(newDate);
alert(newDate);
}

function QueryDateTest(parm)
{
 DateTest(getRequestParameter(parm));
}
function getRequestParameter( name ) {
var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (aQueryString[iParam].indexOf(name.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  alert(unescape(strReturn));
  return(unescape(strReturn.toString()));
}
</script>
<body>
<input type="button" id="hello-world1" value="QueryString" onClick="getRequestParameter('create');" />
<input type="button" id="hello-world2" value="ISODate" onClick="QueryDateTest('create');" />
<input type="button" id="hello-world3" value="HardCoded" onClick="DateTest('11/10/2009');" />
4

2 に答える 2

0

Firefox 3.5 と IE 7 で問題なく動作します。考えられる 2 つのことは、クエリ文字列で誤って間違った日付を入力した可能性があることです。ll/10/2009 のように (これらは llama のようです)。その場合、日付は正しく解析されません。次に、date.format.js を見て、Date オブジェクトに対して何を行っているかを確認する必要があります。

于 2009-11-11T07:36:47.417 に答える
0

私はあなたの解決策を持っています。問題はクエリ文字列にあり、日付には引用符があり、クエリ文字列パーサーもそれらの引用符を日付文字列に入れます。JavaScript の Date メソッドは、渡す内容が非常に細かく、引用符を付けると NAN が返されます。だからここにあなたの簡単な修正があります. コードでは、日付文字列から引用符を必ず削除してください。

...
    alert(unescape(strReturn).replace(/'/gi,""));
    return(unescape(strReturn.toString()).replace(/'/gi,""));
}
</script>
于 2009-11-11T15:49:50.227 に答える