0

以下はVBScriptのコードです。

FromDate=22/2/2013
ToDate=  1/3/2013
StartDateSerial = DateSerial(year(FromDate),month(FromDate), day(FromDate))
ToDateSerial = DateSerial(year(ToDate),month(toDate),day(ToDate))

この日付形式は dd/mm/yyyy です。しかし、DateSerialの結果は以下の通りです

StartDateSerial= 2/22/2013
ToDateSerieal= 1/3/2013

つまり、開始日はmm/dd/yyyyに変換されますが、ToDateSerial はdd/mm/yyyyに変換されます

US lacalでこの問題を見つけました。しかし、英国のローカルでは、これは両方で同じです。

FromDate と To Date で次の値を使用してこれを試すと、

FromDate=2/22/2013
ToDate=  3/1/2013

FromDate と ToDate を JavaScript から vbscript に渡しています。

形式は mm/dd/yyyy で、US lacal では問題なく動作しますが、UK local では動作しません。どうすればこれを修正できるか教えてください。

4

2 に答える 2

2

私は、m/d/y 日付文字列を期待する US ロケールで実行されている Javascript から VBScript に d/m/y 文字列を渡すと仮定します。不適切な日付文字列が提示された場合、VBScript は正しい処理を試み、"22/2/2013" を 2 月の日付に変換します。「2013 年 1 月 3 日」は有効な 1 月の日付と見なされます。UK ロケールは d/m/y 文字列を認識します。「1/3/2013」は 3 月の日付です。

問題を解決するには (すべてのロケールで d/m/y 日付文字列を入力a = Split("d/m/y", "/"))、文字列とDateSerial(a[2], a[1], a[0]).

于 2013-03-01T11:59:10.190 に答える
1

正しいロケールで作業していることを確認するために、SetLocaleを使用してロケールを設定できます。ロケールをdd/mm/yyyy使用できます。2057English UK

cl = GetLocale()

SetLocale(1033) ' US locale
wscript.echo FormatDateTime("1/3/2013",1)

SetLocale(2057) ' UK locale
wscript.echo FormatDateTime("1/3/2013",1)

' Set back the original locale
SetLocale(cl)

' Output:
' Thursday, January 03, 2013
' 01 March 2013
于 2013-03-01T13:32:51.593 に答える