日付オブジェクトから年/月/日を取得するにはどうすればよいですか?


239

alert(dateObj) 与える Wed Dec 30 2009 00:00:00 GMT+0800

形式で日付を取得するにはどうすればよいです2009/12/30か?


2
UTCの日付と時刻が必要ですか?
DOK

回答:


406
var dateObj = new Date();
var month = dateObj.getUTCMonth() + 1; //months from 1-12
var day = dateObj.getUTCDate();
var year = dateObj.getUTCFullYear();

newdate = year + "/" + month + "/" + day;

または、新しい日付を設定して上記の値を指定できます


69
覚えておいてください:1月= 0、2月= 1など。
ルーベンスファリアス

9
違いは何だgetMonthとはgetUTCMonth
user198729

10
UTCは世界時を返します。現地時間を使用する場合は、getMonth
Hiyasat

54
getUTCDay()getUTCDate()日は週の日数(0〜6)であり、日付は月の日数(1〜31)であるため、に置き換える必要があります。
Grzegorz Oledzki

4
この反応にはまだ欠陥があると思います。getUTCDate()は、実際にはイギリスの日を返します。たとえば、次のように入力したとします。var d = new Date( "July 21、1983 01:15:00"); d.getDate()は21を返しますが、d.getUTCDate()は20しか返しません。これは、フランス(私がいる場所)の午前1時15分に、イギリスでは23時15分であるためです。元の日付の日付を取得するには、getDate()を使用する必要があります。
Pascal Ganaye 2016年

101
var dt = new Date();

dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/" + dt.getDate();

月のインデックスは0ベースであるため、1ずつ増やす必要があります。

編集する

日付オブジェクト関数の完全なリストについては、

日付

getMonth()

地方時に基づき、指定された日時の「月」を返します。

getUTCMonth()

世界時に基づき、指定された日時の「月」を返します。


5
括弧が必要です。そうしないと10月は月として表示されます91(stringlandで9 + 1 = 91以降)
ロブ・

5
dt.getFullYear()+ "/" +(dt.getMonth()+ 1)+ "/" + dt.getDate();である必要があります。
Paulius UZA

90
new Date().toISOString()
"2016-02-18T23:59:48.039Z"
new Date().toISOString().split('T')[0];
"2016-02-18"
new Date().toISOString().replace('-', '/').split('T')[0].replace('-', '/');
"2016/02/18"

new Date().toLocaleString().split(',')[0]
"2/18/2016"

2
3番目のケースでは、これがより良いと思いますnew Date()。toISOString()。split( 'T')[0] .replace(/-/ g、 '/');
Mohamed Hesham

28

Moment.js http://momentjs.com/を使用することをお勧めします

その後、次のことができます。

moment(new Date()).format("YYYY/MM/DD");

注:new Date()現在のTimeDate が必要な場合は、実際に追加する必要はありません。日付オブジェクトを渡すことができる参照としてのみ追加しました。現在のTimeDateの場合、これも機能します。

moment().format("YYYY/MM/DD");

1
この答えは、依存関係を追加したい場合は良いです-ので、2019 day.jsのように考慮すべきオプションとしてmoment.jsに軽量の代替である場合- github.com/iamkun/dayjsを。Luxonとdate-fnsについても言及されています。
BradGreens

18

情報

2桁の月と日付が必要な場合(2016/01/01 vs 2016/1/1)

コード

var dateObj = new Date();
var month = ('0' + (dateObj.getMonth() + 1)).slice(-2);
var date = ('0' + dateObj.getDate()).slice(-2);
var year = dateObj.getFullYear();
var shortDate = year + '/' + month + '/' + date;
alert(shortDate);

出力

2016/10/06

バイオリン

https://jsfiddle.net/Hastig/1xuu7z7h/

クレジット

この回答の詳細とクレジット

もっと

w3schoolsの編集者.sliceあるtry itについてもっと学ぶことは、それを使用する方法をよりよく理解するのに役立ちました。


しかし、日付が12月に設定されている場合、来年の1月に転送されませんか?
Hanz Cheah


13

Date getメソッドを使用します。

http://www.tizag.com/javascriptT/javascriptdate.php

http://www.htmlgoodies.com/beyond/javascript/article.php/3470841

var dateobj= new Date() ;
var month = dateobj.getMonth() + 1;
var day = dateobj.getDate() ;
var year = dateobj.getFullYear();

4
JavaScriptのDateオブジェクトの月は、インデックスが作成されません。必ず1を追加してください。追加しない場合、12月は11月になります。11月は10月などになる
1

1
@Aseemは+1を必要とする月でなければならない
Hastig Zusammenstellen

12
var date = new Date().toLocaleDateString()
"12/30/2009"

2
2つの日付を比較するには、この答えがトップです。ありがとう!
ダザグ

9

EUROPE(ENGLISH / SPANISH)FORMAT
現在の日付も取得する必要があります。これを使用できます。

function getFormattedDate(today) 
{
    var week = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
    var day  = week[today.getDay()];
    var dd   = today.getDate();
    var mm   = today.getMonth()+1; //January is 0!
    var yyyy = today.getFullYear();
    var hour = today.getHours();
    var minu = today.getMinutes();

    if(dd<10)  { dd='0'+dd } 
    if(mm<10)  { mm='0'+mm } 
    if(minu<10){ minu='0'+minu } 

    return day+' - '+dd+'/'+mm+'/'+yyyy+' '+hour+':'+minu;
}

var date = new Date();
var text = getFormattedDate(date);


*スペイン語形式の場合は、WEEK変数を変換するだけです。

var week = new Array('Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado');


出力:月曜日-16/11/2015 14:24


6

回答が承認されると、1月1日は次のように表示されます2017/1/1

必要に応じて2017/01/01、以下を使用できます。

var dt = new Date();
var date = dt.getFullYear() + '/' + (((dt.getMonth() + 1) < 10) ? '0' : '') + (dt.getMonth() + 1) + '/' + ((dt.getDate() < 10) ? '0' : '') + dt.getDate();


2

テンプレートリテラルを使用して年/月/日を取得する、よりクリーンな方法を次に示します。

var date = new Date();
var formattedDate = `${date.getFullYear()}/${(date.getMonth() + 1)}/${date.getDate()}`;
console.log(formattedDate);


2
let dateObj = new Date();

let myDate = (dateObj.getUTCFullYear()) + "/" + (dateObj.getMonth() + 1)+ "/" + (dateObj.getUTCDate());

参考までに、以下の詳細を確認できます

new Date().getDate()          // Return the day as a number (1-31)
new Date().getDay()           // Return the weekday as a number (0-6)
new Date().getFullYear()      // Return the four digit year (yyyy)
new Date().getHours()         // Return the hour (0-23)
new Date().getMilliseconds()  // Return the milliseconds (0-999)
new Date().getMinutes()       // Return the minutes (0-59)
new Date().getMonth()         // Return the month (0-11)
new Date().getSeconds()       // Return the seconds (0-59)
new Date().getTime()          // Return the time (milliseconds since January 1, 1970)

let dateObj = new Date();

let myDate = (dateObj.getUTCFullYear()) + "/" + (dateObj.getMonth() + 1)+ "/" + (dateObj.getUTCDate());

console.log(myDate)

//分を返します(0-59)new Date()。getMonth()//月を返します(0-11)new Date()。getSeconds()//秒を返します(0-59)new Date() .getTime()//時間を返します(1970年1月1日からのミリ秒)


1

この1行のコードを使用して、年月日形式の日付を取得できます

var date = new Date().getFullYear() + "-" + new Date().getMonth() + 1 + "-" + new Date().getDate();

-1

あなたがそれに日付objまたはjsタイムスタンプを渡した場合に機能するこれを使用しています:

getHumanReadableDate: function(date) {
    if (date instanceof Date) {
         return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear();
    } else if (isFinite(date)) {//timestamp
        var d = new Date();
        d.setTime(date);
        return this.getHumanReadableDate(d);
    }
}

-1

ES2018は、日、月、年を把握するために使用できる正規表現キャプチャグループを導入しました。

const REGEX = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2});
const results = REGEX.exec('2018-07-12');
console.log(results.groups.year);
console.log(results.groups.month);
console.log(results.groups.day);

このアプローチの利点は、非標準の文字列日付形式で日、月、年をキャッチできることです。

参照 https://www.freecodecamp.org/news/es9-javascripts-state-of-art-in-2018-9a350643f29c/


問題は、Dateオブジェクトから「月/日/年」の日付をフォーマットすることについて具体的に尋ねていました。正規表現のキャプチャグループはここでは適用されません。
コリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.