web-dev-qa-db-ja.com

toLocaleDateString()ショートフォーマット

Date.toLocaleDateString()の短い表記がローカル形式になります。 yyyy-mm-dd形式をハードコーディングする多くのソリューションがありますが、ページをホストしているシステムに依存したいです。これは私の機能です。

    function getDate(dateTimeString)
    {
        var date    = getDateTime(dateTimeString);
        var options = { year: "numeric", month: "numeric", day: "numeric" };        
        return date.toLocaleDateString( date.getTimezoneOffset(), options );
    }

しかし、これは次のように返されます:2015年1月28日水曜日(これは望ましくありません)。提案/アイデアはありますか?

PS:それはブラウザではなく、それを使用している人がウェブ間接続を持っていないというかなり現実的な可能性があります。すべての情報はローカルデータベースから取得されるため、このようなファンタスティックなものは使用できません javascriptジオロケーションを使用して訪問者の位置(国)を取得する方法

12
GeekPeek

ToLocaleDateString関数は、デバイス上のデフォルトのローカルデータを使用すると思います。

出力を確認するには、次のコードを試してください。

// America/Los_Angeles for the US
// US English uses month-day-year order
console.log(date.toLocaleDateString('en-US'));
// → "12/19/2012"

// British English uses day-month-year order
console.log(date.toLocaleDateString('en-GB'));
// → "20/12/2012"

// Korean uses year-month-day order
console.log(date.toLocaleDateString('ko-KR'));
// → "2012. 12. 20."

// Arabic in most Arabic speaking countries uses real Arabic digits
console.log(date.toLocaleDateString('ar-EG'));
// → "٢٠‏/١٢‏/٢٠١٢"

// chinese
console.log(date.toLocaleDateString('zh-Hans-CN'));
// → "2012/12/20"
22
lostomato

はい。その非常に簡単です。日付オブジェクトは次のように使用できます。

var d = new Date();
var mm = d.getMonth() + 1;
var dd = d.getDate();
var yy = d.getFullYear();

次に、必要な形式の文字列を形成するために必要な数字を用意する必要があります。

var myDateString = yy + '-' + mm + '-' + dd; //(US)

これにより、数字が1桁の場合は2015-1-2のようになり、2015-01-02が必要な場合はさらに変換する必要があります。

また、これは「クライアント」の日付のみを与えることに注意してください。ユーザーシステムの日付。これは現地時間でなければなりません。サーバー時間が必要な場合は、何らかのAPIを呼び出す必要があります。

4
dSkech

あなたは次のようなものを試すことができます:

var date = new Date(Date.UTC(2015, 0, 28, 4, 0, 0));
console.log(date.toLocaleDateString("nl",{year:"2-digit",month:"2-digit", day:"2-digit"}));

これにより、少なくともChrome(48.0.2564.116)で「28-01-15」が得られます。

Firefoxは「01/28/2015」を返すだけで、phantomJSはロケールに関係なく「28/01/2015」を返します。

4
Nigel Scott

どうやらDate.prototype.toLocaleDateString()はブラウザー間で一貫性がありません。ここで説明するように、短い日付形式のさまざまなバリエーションを実装できます。 ブラウザカルチャに関してJavaScript Dateをどのようにフォーマットしますか?

0
kmandov