43

たくさんのオブジェクトがあり、それぞれにタイムスタンプがあり、日付でグループ化してJSONオブジェクトにします。最終的な目標は次のようなものです。

myObject = {
    "06/07/2012" : [ 
        {
            "timestamp" : "07/06/2012 13:30",
            ...
        },
        {
            "timestamp" : "07/06/2012 14:00",
            ...
        }
    ],
    "07/07/2012 [...]
}

日付を取得するために、各タイムスタンプオブジェクトをテストし、以下を使用しています。

var visitDate = new Date(parseInt(item.timestamp, 10));
visitDate.setHours(0);
visitDate.setMinutes(0);
visitDate.setSeconds(0);

..次に、それを使用してJSONオブジェクトの名前として保存します。それは厄介なようです、そして私は物事を行うためのより簡単な方法があるはずだと確信しています。

アドバイス/提案を歓迎します!!

4

6 に答える 6

77

どう.toDateString()ですか?

または、、、および?を使用.getDate()します.getMonth().getYear()

私の考えでは、日付で物事をグループ化したい場合は、日付を設定するのではなく、単に日付にアクセスしたいだけです。日付フィールドにアクセスするための設定された方法を使用することで、それらを比較してグループ化できますね。

ここですべての楽しいDateメソッドをチェックしてください:MDN Docs


編集:日付オブジェクトとして保持する場合は、次のようにします

var newDate = new Date(oldDate.toDateString());

Dateのコンストラクターは、文字列の解析に関して非常に賢いので(ただし、多くの警告がないわけではありませんが、これはかなり一貫して機能するはずです)、古いDateを取得して、時間を使わずに日付だけに出力すると、同じ効果が得られます。元の投稿。

于 2012-08-07T14:11:16.300 に答える
11

追加の日付オブジェクトを作成してもかまわない場合は、次のことを試してみてください。

var tempDate = new Date(parseInt(item.timestamp, 10));
var visitDate = new Date (tempDate.getUTCFullYear(), tempDate.getUTCMonth(), tempDate.getUTCDate());

私は、時間を使わずに今月の日付を取得するのと非常によく似た処理を行います。

于 2012-08-07T14:16:32.387 に答える
6

var today = new Date();
var year = today.getFullYear();
var mes = today.getMonth()+1;
var dia = today.getDate();
var fecha =dia+"-"+mes+"-"+year;
console.log(fecha);

于 2020-08-05T23:46:25.497 に答える
1

let date = new Date((new Date("07/06/2012 13:30")).toDateString())
console.log(date)

于 2020-12-24T03:15:08.237 に答える
0

日付の処理はやむを得ず注意が必要です。まず、日時をUTC ISO文字列( "yyyy-MM-dd hh:mm:ss.000Z")として送信すると、多くの問題を回避できます。日付を文字列として保存する場合は、ISO文字列として保存します。スラッシュを使用した日付の解析はロケールに依存するため、エラーが発生しやすくなります。(ヨーロッパ人は日を最優先し、アメリカ人は月を優先します。)

日時ISO文字列から日付文字列を取得するには、を使用しますmyDatetimeString.substring(0,10)。日付文字列から日付オブジェクトを取得するには、ゼロを追加するだけです...

myUtcMidnightDateObject = new Date( myDateString + ' 00:00:00Z' )

次に、UTC真夜中の日付オブジェクトをフォーマットするtoLocaleString()には、UTCオプションとともに使用します...

myFormattedDate = myUtcMidnightDateObject.toLocaleDateString({},{ timeZone: "UTC" })

詳細については、こちらをご覧ください

于 2021-12-08T15:46:21.380 に答える
0

ローカルの日付文字列を「/」で配列に分割し、それに応じて配置するだけです。非常に簡単です。

var date=new Date();
var datearray=date.toLocaleString().split("/");
var sqldate= datearray[2].slice(0,4)+"-"+(datearray[0]<=9?"0"+datearray[0]:datearray[0])+"-"+(datearray[1]<=9?"0"+datearray[1]:datearray[1]);
于 2022-01-18T15:11:40.593 に答える