2

次を実行すると:

var newdate = new Date();
var dt = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("shortdate");
var date = dt.format(newdate);

私はこの 10/14/2012 のようなものを返しますが、それを WinJS.xhr の URL に入れると ?10?/?4?/?2012 に変わります。

サービスコールのサンプルコード

var urlAddress ="http://www.communitymegaphone.com/ws/CMEventDS.svc/GetEventsByDistance?Lat='" + mapCenter.latitude + "'&Lon='" + mapCenter.longitude + "'&Dist=" + eventsByDistance + "&$filter=(starttime%20gt%20datetime'" + date  + "')&$orderby=starttime%20asc&$format=json";

WinJS.xhr({
        type: "GET",
        url: urlAddress
    }).then(processSuccess, processError);

普通の古い JavaScript 日時を使用すると、すべて正常に動作します。

私はどこかで設定を見逃しましたか?また、URL のエンコーディングを別の形式に変更しようとしましたが、うまくいきませんでした。

4

2 に答える 2

1

DateTimeFormatter は、特にユーザー向けであることを意図しています。URL を作成すると、ユーザー向けではなく、バックエンド向けになります。そのためには、ユーザーの言語に合わせたものではなく、標準の日付形式 (iso 8601 など) を使用する必要があります。疑問符で識別される文字は、埋め込みコンテンツでも文字列が正しく表示されるようにする左から右および右から左へのマークです。

于 2013-03-23T04:52:03.817 に答える
0

このような URL を作成する場合、日付を文字列で表す必要があります。

フォーマッタが正しい文字列を返さない理由はわかりませんが、そのようなことは、入力と出力の間のエンコーディングの不一致を示している場合があります。

何らかの特定の理由で DateTimeFormatter が本当に必要でない限り、JavaScript の datetime に固執することがおそらくここでの方法だと思います。

于 2012-10-05T16:14:47.397 に答える