2750

JavaScriptで現在の日付を取得するにはどうすればよいですか?

4

57 に答える 57

3199

現在の日付と時刻を含むnew Date()新しいオブジェクトを生成するために使用します。Date

var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();

today = mm + '/' + dd + '/' + yyyy;
document.write(today);

これにより、今日の日付がmm / dd/yyyyの形式で表示されます。

today = mm +'/'+ dd +'/'+ yyyy;好きなフォーマットに変更するだけです。

于 2011-02-08T04:42:59.513 に答える
503

var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

FirefoxとSafariはダッシュ付きの日付を認識しないため、などreplaceの変数を再利用する場合は、このオプションを使用してください。utcnew Date(utc)

于 2013-09-29T14:13:13.953 に答える
356

可能な限り最短。

「2018-08-03」のような形式を取得するには:

let today = new Date().toISOString().slice(0, 10)

console.log(today)

「2018年8月3日」のような形式を取得するには:

let today = new Date().toLocaleDateString()

console.log(today)

また、たとえば、ロケールを引数として渡すこともできます。toLocaleDateString("sr")

于 2016-03-10T16:30:37.287 に答える
260

更新しました!、 下へスクロール

エンドユーザーにとってかなりシンプルなものが必要な場合...Also, fixed a small suffix issue in the first version below. Now properly returns suffix.

var objToday = new Date(),
	weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
	dayOfWeek = weekday[objToday.getDay()],
	domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
	dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
	months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
	curMonth = months[objToday.getMonth()],
	curYear = objToday.getFullYear(),
	curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
	curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
	curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
	curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear;

document.getElementsByTagName('h1')[0].textContent = today;
<h1></h1>

UBBER UPDATE多くの先延ばしの後、私はついにGitHubbedを作成し、これを自分で使用していた最終的なソリューションで更新しました。それをより甘くするために、それはいくつかの土壇場の編集さえありました!古いjsFiddleをお探しの場合は、こちらをご覧ください

このアップデートには2つのフレーバーがあり、上記の元の回答ほど小さくはありませんが、まだ比較的小さいです。非常に小さくしたい場合は、それを使用してください。
また、注:これはmoment.jsよりもまだ肥大化されていません。moment.jsは素晴らしいですが、imoですが、世俗的な方法が多すぎるため、言語であるかのように瞬間を学ぶ必要があります。ここでの私のものは、 PHPと同じ一般的な形式であるdateを使用しています。

クイックリンク

フレーバー1new Date().format(String) 私の個人的なお気に入り。私はタブーを知っていますが、日付オブジェクトでうまく機能します。日付オブジェクトに対して必要なその他のmodに注意してください。

//  use as simple as
new Date().format('m-d-Y h:i:s');   //  07-06-2016 06:38:34

フレーバー2dateFormat(Date, String) より伝統的なオールインワン方式。前のすべての機能を備えていますが、Dateparamを使用したメソッドを介して呼び出されます。

//  use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s');  //  07-06-2016 06:38:34

ボーナスフレーバー(jQueryが必要)$.date(Date, String) これには、単なるformatオプション以上のものが含まれています。ベースのDateオブジェクトを拡張し、などのメソッドを含みますaddDays。詳細については、Gitを参照してください。

このmodでは、フォーマット文字はPHPに触発されています:date完全なリストについては、私のREADMEを参照してください。

このmodには、作成済みのフォーマットのリストもはるかに長くなっています。既成のフォーマットを使用するには、そのキー名を入力するだけです。dateFormat(new Date(), 'pretty-a');

  • 「化合物」
    • 'commonLogFormat' =='d / M / Y:G:i:s'
    • 'exif' =='Y:m:d G:i:s'
    • 'isoYearWeek' =='Y \\ WW'
    • 'isoYearWeek2' =='Y-\\ WW'
    • 'isoYearWeekDay' =='Y \\ WWj'
    • 'isoYearWeekDay2' =='Y-\\ WW-j'
    • 'mySQL' =='Ymd h:i:s'
    • 'postgreSQL' =='Yz'
    • 'postgreSQL2' =='Yz'
    • '石鹸'=='Ymd\\ TH:i:su'
    • 'soap2' =='Ymd \\ TH:i:s.uP'
    • 'unixTimestamp' =='@U'
    • 'xmlrpc' =='Ymd \\ TG:i:s'
    • 'xmlrpcCompact' =='Ymd \\ tGis'
    • 'wddx' =='Ynj \\ TG:i:s'
  • 「定数」
    • 'AMERICAN' =='F j Y'
    • 'AMERICANSHORT' =='m / d / Y'
    • 'AMERICANSHORTWTIME' =='m / d / Y h:i:sA'
    • 'ATOM' =='Ymd \\ TH:i:sP'
    • 'COOKIE' =='l dMY H:i:s T'
    • 'ヨーロッパ'=='jF Y'
    • 'EUROPEANSHORT' =='dmY'
    • 'EUROPEANSHORTWTIME' =='dmY H:i:s'
    • 'ISO8601' =='Ymd \\ TH:i:sO'
    • 'LEGAL' =='j F Y'
    • 'RFC822' =='D d M y H:i:s O'
    • 'RFC850' =='l dMy H:i:s T'
    • 'RFC1036' =='D d M y H:i:s O'
    • 'RFC1123' =='D d MYH:i:s O'
    • 'RFC2822' =='D d MYH:i:s O'
    • 'RFC3339' =='Ymd \\ TH:i:sP'
    • 'RSS' =='D d MYH:i:s O'
    • 'W3C' =='Ymd \\ TH:i:sP'
  • '可愛い'
    • 'pretty-a' =='g:i.sA l jS \\ o \\ f F Y'
    • 'pretty-b' =='g:iA l jS \\ o \\ f F Y'
    • 'pretty-c' =='n / d / Y g:iA'
    • 'pretty-d' =='n / d / Y'
    • 'pretty-e' =='F jS --g:ia'
    • 'pretty-f' =='g:iA'

お気づきかもしれませんが、doubleを使用\して文字をエスケープできます。


于 2012-02-10T14:33:51.243 に答える
197

時間情報のない日付が必要な場合は、次を使用します。

var today = new Date();
    today.setHours(0, 0, 0, 0);

document.write(today);

于 2014-09-02T06:14:35.220 に答える
113

これを試して:

var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")

結果は次のようになります

15/2/2012
于 2012-02-15T08:48:02.557 に答える
67

日付形式をより細かく制御したい場合は、momentjsをチェックすることを強くお勧めします。素晴らしいライブラリ-そしてたった5KB。 http://momentjs.com/

于 2012-12-12T01:03:28.953 に答える
58

あなたはmoment.jsを使うことができます:http://momentjs.com/

var m = moment().format("DD/MM/YYYY");

document.write(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>

于 2014-08-16T11:56:12.313 に答える
56
var date = new Date().toLocaleDateString("en-US");

また、次toLocaleDateStringの2つのパラメータを使用してメソッドを呼び出すことができます。

var date = new Date().toLocaleDateString("en-US", {
    "year": "numeric",
    "month": "numeric"
});

MDNでのこのメソッドの詳細。

于 2014-07-09T07:01:38.390 に答える
55

var d = (new Date()).toString().split(' ').splice(1,3).join(' ');

document.write(d)

それをステップに分解するには:

  1. (new Date()).toString()「2013年6月28日金曜日15:30:18GMT-0700(PDT)」

  2. (new Date()).toString().split(' ')上記の文字列を各スペースで分割し、次のように配列を返します:["Fri"、 "Jun"、 "28"、 "2013"、 "15:31:14"、 "GMT-0700"、 "(PDT)" ]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ')上記の配列から2番目、3番目、4番目の値を取得し、それらをスペースで結合して、文字列「Jun282013」を返します。

于 2013-06-28T22:32:38.943 に答える
49

これは毎回機能します:

    var now = new Date();
    var day = ("0" + now.getDate()).slice(-2);
    var month = ("0" + (now.getMonth() + 1)).slice(-2);
    var today = now.getFullYear() + "-" + (month) + "-" + (day);
    
    console.log(today);

于 2013-11-03T18:03:16.310 に答える
41

よりクリーンでシンプルなバージョン:

new Date().toLocaleString();

結果はユーザーのロケールによって異なります:

2017年2月27日、午前9時15分41秒

于 2016-07-18T17:15:00.037 に答える
36

他のほとんどの答えは、日付と時間を提供しています。
日付だけが必要な場合。

new Date().toISOString().split("T")[0]

出力

[ '2021-02-08', '06:07:44.629Z' ]

/フォーマットしたい場合はを使用してreplaceAllください。

new Date().toISOString().split("T")[0].replaceAll("-", "/")

他の形式が必要な場合は、を使用するのが最適momentjsです。

于 2021-02-08T06:12:44.280 に答える
33

YYYY-MM-DD形式に満足している場合は、これでも機能します。

new Date().toISOString().split('T')[0]

2018-03-10

于 2018-03-10T14:48:28.677 に答える
24

Dateオブジェクトを拡張するDate.jsライブラリを使用できるため、.today()メソッドを使用できます。

于 2012-06-26T13:00:15.397 に答える
19

次のように、静的メソッドを呼び出して現在の日付を取得できます。

var now = Date.now()

参照:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now

于 2015-05-15T14:40:02.497 に答える
17

Varunの回答はTimezoneOffsetを考慮していません。これを行うバージョンは次のとおりです。

var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11

TimezoneOffset分ですが、Dateコンストラクターはミリ秒かかるため、。を掛け60000ます。

于 2015-08-11T06:08:17.250 に答える
15

最短の答えは次のとおりです。new Date().toJSON().slice(0,10)

于 2017-12-01T21:43:24.107 に答える
14
new Date().toDateString();

結果:

「2016年2月3日水曜日」

于 2016-02-03T12:08:37.877 に答える
14

現地時間ではなく、現在toISOString()のUTC時刻のみを返します。'.toString()'関数を使用して日付を作成し、次のyyyy-MM-ddような形式で日付を取得する必要があります。

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);

日付と時刻をyyyy-MM-ddTHH:mm:ss形式で取得するには

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);

日付と時刻をyyyy-MM-dd HH:mm:ss形式で取得するには

document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));

于 2018-05-18T07:27:16.297 に答える
13
new Date().toISOString().slice(0,10); 

もうまくいくだろう

于 2015-10-01T16:19:05.197 に答える
13

組み込みのJSを使用するDate.toLocaleDateString()(その他のオプションはMDN docsにあります):

const options = { 
  month: '2-digit', 
  day: '2-digit',
  year: 'numeric', 
};

console.log(new Date().toLocaleDateString('en-US', options)); // mm/dd/yyyy

更新Intl.DateTimeFormat:適切なブラウザサポートを使用して、同様の動作を得ることができます。と同様に、オプションtoLocaleDateString()を使用してオブジェクトを渡すことができます。

const date = new Date('Dec 2, 2021') // Thu Dec 16 2021 15:49:39 GMT-0600
const options = {
  day: '2-digit',
  month: '2-digit',
  year: 'numeric',
}
new Intl.DateTimeFormat('en-US', options).format(date) // '12/02/2021'
于 2020-10-08T19:34:18.513 に答える
11

単純なDD/MM/YYYY形式が必要な場合は、欠落しているゼロのプレフィックスを付けませんが、この単純な解決策を考え出しました。

var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );

于 2015-06-30T08:10:36.927 に答える
11

試す

`${Date()}`.slice(4,15)

console.log( `${Date()}`.slice(4,15) )

ここでは、標準のJS機能を使用します:テンプレートリテラル、文字列にキャストされるDateオブジェクト、およびスライス。これはおそらくOP要件を満たす最短のソリューションです(時間なし、日付のみ)

于 2020-03-03T13:00:50.727 に答える
9

最新の編集:8/23/19 date-fnsライブラリはmoment.jsとほとんど同じように機能しますが、フットプリントがはるかに小さくなります。プロジェクトに含める関数を選択できるので、今日の日付をフォーマットするためにライブラリ全体をコンパイルする必要はありません。最小限のサードパーティライブラリがプロジェクトのオプションではない場合、私はSamuelMeddowsによって受け入れられたソリューションを支持します。

それは少数の人々を助けたので、以下の歴史を保存します。しかし、記録のために、それはかなりハッキーであり、この投稿のほとんどの解決策がそうであるように、警告なしに壊れる傾向があります

2017年2月7日編集 1行のJSソリューション:

tl; dr

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

edge、ff latest、およびchrome return todaysDate = "2/7/2017"
"works" * in IE10 +

説明

IE10とIEEdgeの動作が少し異なることがわかりました。new Date(Date.now()).toLocaleString()入力として、

IE10は以下を返します:

"Tuesday, February 07, 2017 2:58:25 PM"

大きな長い関数とFTFYを書くことができました。しかし、あなたは本当にこのようなもののためにmoment.jsを使うべきです。私のスクリプトはこれをクリーンアップするだけで、拡張された従来の米国の表記法を提供します。> todaysDate = "March 06, 2017"

IE EDGEは以下を返します:

"‎2‎/‎7‎/‎2017‎ ‎2‎:‎59‎:‎27‎ ‎PM"

もちろん、それはそれほど簡単なことではありません。Edgeの日付文字列には、表示されている各文字の間に非表示の「•」文字があります。したがって、最初の文字が数字であるかどうかだけでなく、最初の3文字もチェックします。これは、日付範囲全体の1文字が、ある時点で最終的にドットまたはスラッシュになることが判明したためです。したがって、物事を単純にするために、最初の3文字(将来のシェナニガンに対する小さなバッファー)を.slice()してから、数値を確認します。これらの目に見えないドットがコード内に残る可能性があることに注意してください。この文字列をビューに印刷するよりも大きな計画がある場合は、それを掘り下げたいと思います。

∴更新されたワンライナー:

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

それは読むのが面倒です。どうですか:

var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];

元の回答

私はあなたのためにワンライナーを持っています:

new Date(Date.now()).toLocaleString().split(', ')[0];

そして[1]あなたに一日の時間を与えるでしょう。

于 2017-01-20T12:35:42.977 に答える
8

これをチェックアウトできます

var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);

また、Date()コンストラクターのドキュメントを参照してください。 リンク

Reactjsで現在の日付月年を取得する

于 2015-08-11T06:31:18.550 に答える
7

あなたはこれを使うことができます

<script>
function my_curr_date() {      
    var currentDate = new Date()
    var day = currentDate.getDate();
    var month = currentDate.getMonth() + 1;
    var year = currentDate.getFullYear();
    var my_date = month+"-"+day+"-"+year;
    document.getElementById("dateField").value=my_date;    
}
</script>

HTMLは

<body onload='return my_curr_date();'>
    <input type='text' name='dateField' id='dateField' value='' />
</body>
于 2013-02-08T12:07:47.317 に答える
7

「現在の日付」までに「今日」について考えている場合、このトリックはあなたのために働くかもしれません:

> new Date(3600000*Math.floor(Date.now()/3600000))
2020-05-07T07:00:00.000Z

このようにして、今日の日付インスタンスを時刻0:00:00で取得します。

操作の原理は非常に単純です。現在のタイムスタンプを取得し、ミリ秒で表される1日に分割します。分数を取得します。Math.floorを使用すると、分数が削除されるため、整数が取得されます。ここで、1日を掛け戻すと(ここでも-ミリ秒単位)、日付のタイムスタンプにその日の始まりの時刻が正確に含まれます。

> now = Date.now()
1588837459929
> daysInMs = now/3600000
441343.73886916664
> justDays = Math.floor(daysInMs)
441343
> today = justDays*3600000
1588834800000
> new Date(today)
2020-05-07T07:00:00.000Z

清潔でシンプル。

于 2015-10-01T15:25:15.483 に答える
7

これを実現するための簡単な方法(現在のタイムゾーンを考慮しながら、ISO yyyy-mm-dd形式を利用)は次のとおりです。

let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"

通常、これはかなり多目的に互換性のある日付形式であり、必要に応じて純粋な日付値に変換できます。

Date.parse(d); // 1582044297000
于 2020-02-18T16:46:48.993 に答える
6

jQueryを使用している場合。このワンライナーを試してみてください:

$.datepicker.formatDate('dd/mm/yy', new Date());

日付をフォーマットするための規則は次のとおりです

  • d-月の日(先行ゼロなし)
  • dd-月の日(2桁)
  • o-年の日(先行ゼロなし)
  • oo-年の日(3桁)
  • D-短い日の名前
  • DD-長い日の名前
  • m-月(先行ゼロなし)
  • mm-月(2桁)
  • M-月の名前は短い
  • MM-長い月の名前
  • y-年(2桁)
  • yy-年(4桁)

これがjQuerydatepickerのリファレンスです

于 2017-02-01T11:50:51.047 に答える
6

これはフォーマットされた日付を取得するのに適しています

let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);

于 2019-07-11T08:00:33.747 に答える
6

これは多くのことを行います。

    var today = new Date();
    var date = today.getFullYear()+'/'+(today.getMonth()+1)+'/'+today.getDate();
    document.write(date);

today.getFullYear ()が現在の年を取得する場所、

today.getMonth()+1は当月を取得します

そしてtoday.getDate()は今日の日付を取得します。これらはすべて「/」と連結されています。

于 2019-08-01T10:13:37.333 に答える
5

これの大きな問題は何ですか..これを行うための最もクリーンな方法は

var currentDate=new Date().toLocaleString().slice(0,10);

于 2015-10-31T19:39:27.730 に答える
5
// Try this simple way

const today = new Date();
let date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
console.log(date);
于 2021-05-11T14:33:57.457 に答える
4
var dateTimeToday = new Date();
var dateToday = new Date(
    dateTimeToday.getFullYear(), 
    (dateTimeToday.getMonth() + 1) /*Jan = 0! */, 
    dateTimeToday.getDate(), 
    0, 
    0, 
    0, 
    0);
于 2015-04-12T14:36:37.323 に答える
4

これはあなたを助けるかもしれません

var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());

これにより、現在の日付がdd / MM/yyyy形式で出力されます

于 2016-08-17T08:33:10.733 に答える
4

TL; DR

ここにある答えのほとんどは、信頼できるとは見なされないことが多いソースであるローカルマシン(クライアント)の現在の時刻が必要な場合にのみ正しいです(おそらく別のシステムとは異なるでしょう)。

信頼できる情報源は次のとおりです。

  • Webサーバーの時計(ただし、更新されていることを確認してください)
  • 時間APIとCDN

詳細

インスタンスで呼び出されたメソッドDateは、マシンの現地時間に基づいた値を返します。

詳細については、「MDN Web docs」:JavaScriptDateオブジェクトを参照してください。

あなたの便宜のために、私は彼らのドキュメントから関連するメモを追加しました:

(...)日付と時刻またはそのコンポーネントをフェッチする基本的な方法はすべて、ローカル(つまりホストシステム)のタイムゾーンとオフセットで機能します。

これに言及している別のソースは次のとおりです。JavaScriptの日付と時刻のオブジェクト

誰かの時計が数時間ずれているか、別のタイムゾーンにいる場合、Dateオブジェクトは自分のコンピューターで作成された時間とは異なる時間を作成することに注意することが重要です。

使用できる信頼できるソースは次のとおりです。

ただし、ユースケースで精度が重要でない場合、または単にローカルマシンの時刻を基準にした日付が必要な場合は、のDateようなJavascriptの基本的なメソッドを安全に使用できますDate.now()

于 2020-02-09T18:39:10.247 に答える
4

非常に多くの複雑な答え...

使用するnew Date()だけで、文字列として必要な場合は、new Date().toISOString()

楽しみ!

于 2021-01-11T15:29:57.513 に答える
3

これは古い質問だと思いますが、最も簡単な方法は次のとおりです。

var date = new Date();
var TimeStamp = date.toLocaleString();

function CurrentTime(){
  alert(TimeStamp);
}

これにより、現在の時刻が取得され、場所に基づいて文字列に渡されます。次に、関数CurrentTimeを呼び出して時刻を表示できます。これは、私にとって、何かのタイムスタンプを取得するための最も効果的な方法です。

于 2015-01-19T22:21:47.473 に答える
3

このように日付をきれいに印刷します。

2015年6月1日11:36:48AM

https://gist.github.com/Gerst20051/7d72693f722bbb0f6b58

于 2015-06-01T15:40:44.183 に答える
3

文字列にフォーマットする場合。

statusUpdate = "time " + new Date(Date.now()).toLocaleTimeString();

出力「時刻11:30:53AM」

于 2019-01-08T00:33:24.217 に答える
2

これは、柔軟性とモジュール性の両方を備えているため、私の現在のお気に入りです。これは、(少なくとも)3つの単純な関数のコレクションです。

/**
 * Returns an array with date / time information
 * Starts with year at index 0 up to index 6 for milliseconds
 * 
 * @param {Date} date   date object. If falsy, will take current time.
 * @returns {[]}
 */
getDateArray = function(date) {
    date = date || new Date();
    return [
        date.getFullYear(),
        exports.pad(date.getMonth()+1, 2),
        exports.pad(date.getDate(), 2),
        exports.pad(date.getHours(), 2),
        exports.pad(date.getMinutes(), 2),
        exports.pad(date.getSeconds(), 2),
        exports.pad(date.getMilliseconds(), 2)
    ];
};

パッド機能は次のとおりです。

 /**
 * Pad a number with n digits
 *
 * @param {number} number   number to pad
 * @param {number} digits   number of total digits
 * @returns {string}
 */
exports.pad = function pad(number, digits) {
    return new Array(Math.max(digits - String(number).length + 1, 0)).join(0) + number;
};

最後に、日付文字列を手動で作成するか、単純な関数を使用して作成することができます。

/**
 * Returns nicely formatted date-time
 * @example 2015-02-10 16:01:12
 *
 * @param {object} date
 * @returns {string}
 */
exports.niceDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0] + '-' + d[1] + '-' + d[2] + ' ' + d[3] + ':' + d[4] + ':' + d[5];
};

/**
 * Returns a formatted date-time, optimized for machines
 * @example 2015-02-10_16-00-08
 *
 * @param {object} date
 * @returns {string}
 */
exports.roboDate = function(date) {
    var d = exports.getDateArray(date);
    return d[0] + '-' + d[1] + '-' + d[2] + '_' + d[3] + '-' + d[4] + '-' + d[5];
};
于 2015-02-10T15:03:23.380 に答える
2

2.39KB縮小。1つのファイル。https://github.com/rhroyston/clock-js

助けようとしているだけです...

ここに画像の説明を入力してください

于 2016-05-03T22:14:04.930 に答える
2

日付形式をより細かく制御したい場合は、date-FNSを確認することを強くお勧めします。素晴らしいライブラリ-moment.jsよりもはるかに小さく、関数ベースのアプローチにより、他のクラスベースのライブラリよりもはるかに高速になります。日付を超えて必要な多数の操作を提供します。

https://date-fns.org/docs/Getting-Started

于 2018-11-06T10:55:49.440 に答える
1
(function() { var d = new Date(); return new Date(d - d % 86400000); })()
于 2014-04-22T09:24:10.383 に答える
1

基礎

フォーマットに満足している場合は、次のSun Jan 24 2016 21:23:07 GMT+0100 (CET)コードを使用できます。

var today = new Date();

Date.prototype.toLocaleDateString()

出力をフォーマットする場合は、以下の使用を検討してくださいDate.prototype.toLocaleDateString()

var today = new Date().toLocaleDateString('de-DE', {     
    weekday: 'long', 
    year: 'numeric',
    month: 'long',
    day: 'numeric'
});

今日(2016年1月24日)そのコードを最新のブラウザーで実行すると、文字列が生成されますSonntag, 24. Januar 2016。ただし、古いブラウザでは、たとえば次のように異なる結果が生成される場合があります。IE <11は、ロケールまたはオプションの引数をサポートしていません。

カスタム化

必要なニーズを満たすのに十分な柔軟性がない場合Date.prototype.toLocaleDateString()は、次のようなカスタムDateオブジェクトの作成を検討することをお勧めします。

var DateObject = (function() {
    var monthNames = [
      "January", "February", "March",
      "April", "May", "June", "July",
      "August", "September", "October",
      "November", "December"
    ];
    var date = function(str) {
        this.set(str);
    };
    date.prototype = {
        set : function(str) {
            var dateDef = str ? new Date(str) : new Date();
            this.day = dateDef.getDate();
            this.dayPadded = (this.day < 10) ? ("0" + this.day) : "" + this.day;
            this.month = dateDef.getMonth() + 1;
            this.monthPadded = (this.month < 10) ? ("0" + this.month) : "" + this.month;
            this.monthName = monthNames[this.month - 1];
            this.year = dateDef.getFullYear();
        }
    };
    return date;
})();

そのコードを含めてnew DateObject()今日(2016年1月24日)実行すると、次のプロパティを持つオブジェクトが生成されます。

day: 24
dayPadded: "24"
month: 1
monthPadded: "01"
monthName: "January"
year: 2016
于 2016-01-24T20:41:31.293 に答える
1

以下に示す私のDATEAPIを使用して、現在の日付、昨日などを取得するとともに、日付の書式設定を日常的に使用できます。

 var dt = new Date();  
       /// ANY DATE YOU WANT --  dt = new Date(""July 21, 1983 01:15:00"")

       dateObj = dt.getFormattedDate();

       alert( dateObj.isToday() );
       alert( dateObj.todayDay() );
       alert( dateObj.monthNameDayYear() );

(function () {

    fnDateProcessor = function () {
        var that = this;

        return {

            yyyymmdd: function (separator) {
                var fdate = this.formatDate(true, true) ,
                    separator = separator ? separator : "-";
                return fdate.year + separator + fdate.month + separator + fdate.day;
            },

            monthNameDayYear: function () {
                var fdate = this.formatDate(true, true);
                return fdate.monthName + " " + fdate.day + ", " + fdate.year;
            },

            ddmmyyyy: function (separator) {
                var fdate = this.formatDate(true, true) ,
                    separator = separator ? separator : "/";
                return fdate.day + separator + fdate.month + separator + fdate.year;
            },

            meridianTime: function () {
                var fdate = this.formatDate();
                return fdate.hour + ":" + fdate.minute + " " + fdate.meridian;
            },

            monthDay: function (separator) {

                var fdate = this.formatDate();
                separator = checkSeparator(separator);
                return fdate.monthName.substring(0, 3) + separator + fdate.day;

            },

            weekMonthDayYear: function () {
                var fdate = this.formatDate();
                //separator = checkSeparator(separator);

                return fdate.weekDay + " " + fdate.monthName.substring(0, 3) +
                    fdate.day + " ," + fdate.year;
            },

            timeZoneInclusive: function () {

                return new Date(that);
            },

            todayDay: function () { return new Date().getDate(); },
            todayMonth: function () { return new Date().getMonth() + 1; },
            dateDay: function () { return this.formatDate().day; },
            dateMonth: function () { return this.formatDate().month; },
            isToday: function () { return this.sameDate(new Date()); },
            isYesterday: function () {
                d = new Date(); d.setDate(d.getDate() - 1);
                return this.sameDate(d);
            },

            formatDate: function () {
                var zeroPaddedMnth = true, zeroPaddedDay = false,
                    zeroPaddedHr = false, zeroPaddedMin = true;
                // Possible to take Options arg that overide / merge to defaults

                var monthNames = [
                    "January", "February", "March",
                    "April", "May", "June", "July",
                    "August", "September", "October",
                    "November", "December"
                ];
                var weekDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];

                var day = getFormattedDay(that.getDate(), zeroPaddedDay);
                var monthIndex = that.getMonth();
                var month = getFormattedMonth(monthIndex + 1, zeroPaddedMnth);
                var year = that.getFullYear();
                var wkDay = that.getDay();
                var hour = getFormattedHour(that.getHours(), zeroPaddedHr);
                var minute = getFormattedMinute(that.getMinutes(), zeroPaddedMin);
                var meridian = getMeridian(that.getHours());

                return {
                    "day": day, "monthName": monthNames[monthIndex], "month": month,
                    "weekDay": weekDays[wkDay], "year": year, "hour": hour, "minute": minute,
                    "meridian": meridian
                };
            },

            compareDate: function (d2) {     /// validates if caller is less than argument                            
                d2 = _isString(d2) ? new Date(d2) : d2;

                return !this.sameDate(d2)
                    && typeof d2 != "number"
                    ? that < d2 : false;
            },

            sameDate: function (d) {
                return that.getFullYear() === d.getFullYear()
                    && that.getDate() === d.getDate()
                    && that.getMonth() === d.getMonth();
            },

            dateAfter: function (separator) {
                var fdate = this.formatDate();
                var separator = separator ? separator : "-";
                return fdate.year + separator + fdate.month + separator + (fdate.day + 1);
            }

        };

    };


    function _isString(obj) {
        var toString = Object.prototype.toString;
        return toString.call(obj) == '[object String]';
    }

    function checkSeparator(separator) {
        // NOT GENERIC ... NEEDS REVISION
        switch (separator) {
            case " ": sep = separator; break;
            case ",": sep = " ,"; break;
            default:
                sep = " "; break;
        }

        return sep;
    }

    function getFormattedHour(h, zeroPadded) {
        h = h % 12;
        h = h ? h : 12;    //  12 instead of 00
        return zeroPadded ? addZero(h) : h;
    }

    function getFormattedMinute(m, zeroPadded) {

        return zeroPadded ? addZero(m) : m;
    }

    function getFormattedDay(dd, zeroPadded) {

        return zeroPadded ? addZero(dd) : dd;
    }
    function getFormattedMonth(mm, zeroPadded) {

        return zeroPadded ? addZero(mm) : mm;
    }

    function getMeridian(hr) {

        return hr >= 12 ? 'PM' : 'AM';
    }

    function addZero(i) {
        if (i < 10) {
            i = "0" + i;
        }
        return i;
    }


    Date.prototype.getFormattedDate = fnDateProcessor;

} ());
于 2017-05-10T19:30:56.307 に答える
1

このような日付形式をお探しの方は2020年4月9日

function getDate(){
  var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]

  var today = new Date();
  var dd    = String(today.getDate()).padStart(2, '0');
  var mm    = months[today.getMonth()];
  var yyyy  = today.getFullYear();

  today = dd + "-" + mm + "-" + yyyy;
  return today;
}

getDate();
于 2020-04-09T07:26:35.190 に答える
0

この回答は、ISO-8601のような形式とタイムゾーンの日付を探している人を対象としています。日付ライブラリを含めたくない人のための純粋なJSです。

      var date = new Date();
      var timeZone = date.toString();
      //Get timezone ( 'GMT+0200' )
      var timeZoneIndex = timeZone.indexOf('GMT');
      //Cut optional string after timezone ( '(heure de Paris)' )
      var optionalTimeZoneIndex = timeZone.indexOf('(');
      if(optionalTimeZoneIndex != -1){
          timeZone = timeZone.substring(timeZoneIndex, optionalTimeZoneIndex);
      }
      else{
          timeZone = timeZone.substring(timeZoneIndex);
      }
      //Get date with JSON format ( '2019-01-23T16:28:27.000Z' )
      var formattedDate = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON();
      //Cut ms
      formattedDate = formattedDate.substring(0,formattedDate.indexOf('.'));
      //Add timezone
      formattedDate = formattedDate + ' ' + timeZone;
      console.log(formattedDate);

コンソールに次のようなものを印刷します。

2019-01-23T17:12:52 GMT + 0100

JSFiddle:https ://jsfiddle.net/n9mszhjc/4/

于 2019-01-23T16:14:22.170 に答える
0

日付だけを取得するには、JavaScriptに組み込まれています。

new Date();

日付の書式設定を探していて、とにかくサイトでKendo JQuery UIライブラリを使用している場合は、組み込みのkendo関数を使用することをお勧めします。

kendo.toString(new Date(), "yyMMdd"); //or any other typical date format

サポートされている形式の完全なリストについては、こちらを参照してください

于 2019-11-07T16:34:50.753 に答える
0

文字列表現のみが必要な場合は、次を使用します。

Date();
于 2019-11-07T20:00:33.100 に答える
0

私のやり方

let dateString = new Date().toLocaleString().split(',').find(() => true);
于 2021-05-14T16:51:01.143 に答える
0

Date.jsを試しましたか?

ミリ秒

date.js.millisecond(); // 0.00

date.js.second(); // 58

date.js.minute(); // 31

時間

date.js.hour(); // 6  (PM)

日々

date.js.day(); // Monday

date.js.week(); // (Week Of the Month / WOM) => 2

date.js.month(); // (Month) => November

TLM(3文字-月)

date.js.tlmonth(); // (Month) => Dec

date.js.year(); // (Year / String: "") => "2021"

シーズン

date.js.season(); // (Fall / Season: seasons) => "fall"

午前/午後の現在時刻

date.js.time(); // (Time / Zone: "PDT/EDT etc.") => 10:04 AM
于 2021-11-03T19:27:53.660 に答える
-1

カスタム形式でレンダリングし、さまざまなロケールで月の名前を使用する機能:

const locale = 'en-us';
const d = new Date(date);

const day = d.getDate();
const month = d.toLocaleString(locale, { month: 'long' });
const year = d.getFullYear();

const time = d.toLocaleString(locale, { hour12: false, hour: 'numeric', minute: 'numeric'});

return `${month} ${day}, ${year} @ ${time}`; // May 5, 2019 @ 23:41
于 2019-05-09T16:38:19.507 に答える
-1

私のソリューションは文字列リテラルを使用しています詳細...

// Declare Date as d
var d = new Date()

// Inline formatting of Date
const exampleOne = `${d.getDay()}-${d.getMonth() + 1}-${d.getFullYear()}`
// January is 0 so +1 is required

// With Breaklines and Operators
const exampleTwo = `+++++++++++
With Break Lines and Arithmetic Operators Example
Year on newline: ${d.getFullYear()}
Year minus(-) 30 years: ${d.getFullYear() - 30}
You get the idea...
+++++++++++`

console.log('=============')
console.log(exampleOne)
console.log('=============')

console.log(exampleTwo)

于 2019-10-24T10:21:54.187 に答える
-1

これを試してみてください。それに応じて日付のギ酸塩を調整できます。

var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth() + 1;
    var yyyy = today.getFullYear();
    if (dd < 10) {
        dd = '0' + dd;
    }
    if (mm < 10) {
        mm = '0' + mm;
    }
 var myDate= dd + '-' + mm + '-' + yyyy;
于 2020-02-05T11:14:14.780 に答える
-1
Date.prototype.toLocalFullDateStringYYYYMMDDHHMMSS = function () {
if (this != null && this != undefined) {
    let str = this.getFullYear();
    str += "-" + round(this.getMonth() + 1);
    str += "-" + round(this.getDate());
    str += "T";
    str += round(this.getHours());
    str += ":" + round(this.getMinutes());
    str += ":" + round(this.getSeconds());
    return str;
} else {
    return this;
}

function round(n){
    if(n < 10){
        return "0" + n;
    }
    else return n;
}};
于 2020-08-02T11:21:21.840 に答える