web-dev-qa-db-ja.com

JavaScriptで現在の日付を取得する方法

JavaScriptで現在の日付を取得する方法

1959
Suresh

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

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

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

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

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

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

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

2253
Samuel Meddows

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

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

374
Varun Natraaj

UPDATED!、下スクロール

あなたがエンドユーザにとってかなりシンプルなものが欲しいなら... 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、それはあたかもそれが言語であるかのように学ぶ瞬間を必要とする多くの世俗的な方法を持っています。ここでのMineは PHP:date と同じ一般的なフォーマットを使います。

クイックリンク

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

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

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

//  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 に影響を受けています。完全なリストについては、my _ 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' == 'Y-m-d h:i:s'
    • 'postgreSQL' == 'Y.z'
    • 'postgreSQL2' == 'Yz'
    • '石鹸' == 'Y-m-d \\ TH:i:s.u'
    • 'soap2' == 'Y-m-d \\ TH:i:s.uP'
    • 'unixTimestamp' == '@U'
    • 'xmlrpc' == 'Ymd \\ TG:i:s'
    • 'xmlrpcCompact' == 'Ymd \\ tGis'
    • 'wddx' == 'Y-n-j \\ TG:i:s'
  • '定数'
    • 'AMERICAN' == 'F j Y'
    • 'AMERICANSHORT' == 'm/d/Y'
    • 'AMERICANSHORTWTIME' == 'm/d/Y時間:i:sA'
    • 'ATOM' == 'Y-m-d \\ TH:i:sP'
    • 'COOKIE' == 'l d-M-Y H:i:s T'
    • 'ヨーロッパ' == 'j F Y'
    • 'EUROPEANSHORT' == 'd.m.Y'
    • 'EUROPEANSHORTWTIME' == 'd.m.Y H:i:s'
    • 'ISO 8601' == 'Y-m-d \\ TH:i:sO'
    • 'LEGAL' == 'j F Y'
    • 'RFC822' == 'D d M y H:i:s O'
    • 'RFC850' == 'l d-M-y H:i:s T'
    • 'RFC1036' == 'D d M y H:i:s O'
    • 'RFC1123' == 'D d M Y H:i:s O'
    • 'RFC2822' == 'D d M Y H:i:s O'
    • 'RFC3339' == 'Y-m-d \\ TH:i:sP'
    • 'RSS' == 'D d M Y H:i:s O'
    • 'W3C' == 'Y-m-d \\ TH:i:sP'
  • 「かわいい」
    • 'pretty-a' == 'g:i.sa l jS \\ o \\ f F Y'
    • 'pretty-b' == 'g:私は\\ o \\ f F Y'です。
    • 'pretty-c' == 'n/d/Y g:i A'
    • 'pretty-d' == 'n/d/Y'
    • 'pretty-e' == 'F jS - g:ia'
    • 'pretty-f' == 'g:iA'

お気づきかもしれませんが、文字をエスケープするために\を使用することができます。


199
SpYk3HH

時間情報のない日付だけが必要な場合は、次のようにします。

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

document.write(today);

131
Marshal

最短の長さ。  

"2018-08-03"のようなフォーマットにするには:

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

console.log(today)

"8/3/2018"のようなフォーマットにするには:

let today = new Date().toLocaleDateString()

console.log(today)

また、引数として locale を渡すことができます。たとえば、toLocaleDateString("sr")など.

115
Damjan Pavlica

これを試して:

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
93
Jimmy M

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

62
benjamin.keen

あなたは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>

51
Morad

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

document.write(d)

ステップに分割するには:

  1. (new Date()).toString()は "Fri Jun 28 2013 15:30:18 GMT-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番目の値を取得し、それらをスペースで結合して、 "Jun 28 2013"という文字列を返します。

45
Rishabh Marya
var date = new Date().toLocaleDateString("en-US");

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

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

_ msdn _ に関する記事。このメソッドの詳細については _ mdn _ をご覧ください。

39
Dunaevsky Maxim

これは毎回機能します。

    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);
    
    document.write(today);

36
roshan

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

new Date().toLocaleString();

ユーザーのロケールに従って、結果さまざま

2/27/2017、9:15:41 AM

29
Oded Breiner

あなたがYYYY-MM-DDフォーマットに満足しているなら、これも仕事をします。

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

2018-03-10

21
Aung Htet

Dateオブジェクトを拡張する Date.js libraryを使用することができます。したがって、.today()メソッドを使用できます。

21
eomeroff

現在の日付を取得するには、このように静的メソッドを呼び出します。

var now = Date.now()

参照:

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

18
Jose Rojas

Varun's answer は、 TimezoneOffsetを説明していません 。これはそうするバージョンです:

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

TimezoneOffsetはminutesですが、Dateコンストラクタはミリ秒かかるため、60000による乗算になります。

15
user1338062

最も短い答えはnew Date().toJSON().slice(0,10)です。

13
Blair Anderson

あなたが単純なDD/MM/YYYYフォーマットを望むならば、私はちょうどこの簡単な解決策を思い付きました、それは行方不明のゼロに接頭辞をつけませんが。

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

11
Phil Ricketts
new Date().toDateString();

結果:

"2016年2月3日水曜日"

10
user3519897

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',' '));

8
jafarbtech
new Date().toISOString().slice(0,10); 

うまくいくだろう

8
Toucouleur

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

数人を助けたため、以下の履歴を保存します。しかし、記録のために、この投稿のほとんどの解決策と同様に、警告なしに壊れる可能性が非常に高く、

EDIT 2/7/20171行の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];

エッジ、ff最新、およびchrome return todaysDate = "2/7/2017"
IE10 +での「動作」*

説明

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

IE10は以下を返します。

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

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

IE Edgeは以下を返します。

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

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

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

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]は時刻を提供します。

6
Cameron Donahue

これが使えます

<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>
6
Roger

あなたが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桁)

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

6
Souvik

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

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

そしてDate()コンストラクタのドキュメントを参照してください。 link

4
Akhil

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

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

4
ISONecroMAn
var dateTimeToday = new Date();
var dateToday = new Date(
    dateTimeToday.getFullYear(), 
    (dateTimeToday.getMonth() + 1) /*Jan = 0! */, 
    dateTimeToday.getDate(), 
    0, 
    0, 
    0, 
    0);
3
Jas

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

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

これは現在の日付をdd/MM/yyyy形式で表示します。

3
Jayant Patil

誰かに役立つかどうかはわかりませんが、今日のDateオブジェクトを取得するために使用しています。

new Date( 3600000*Math.floor(Date.now()/3600000) )
3
marverix

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

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

function CurrentTime(){
  alert(TimeStamp);
}

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

3
Brock Davis

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

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

enter image description here

2
Ron Royston

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

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

2
jyotibisht

このような日付をきれいにプリントしましょう。

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

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

2
Andy

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

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

実際の日付に使用するものを貼り付けると思いました。

function realDate(date){
    return date.getDate() + "/" + (date.getMonth()+1) + "/" + date.getUTCFullYear();
}

var ourdate = realDate(new Date);
1
Waheed

これはたくさんあります;

var today = new Date();
var date = today.getFullYear()+'/'+(today.getMonth()+1)+'/'+today.getDate();
1
anil shrestha
(function() { var d = new Date(); return new Date(d - d % 86400000); })()
1
Andrea

試してみる.. HTML

<p id="date"></p>

JS

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

現在の日付の作業デモ

デモ

1
Shanu Shaji

これは私の現在のお気に入りです。なぜならそれは柔軟性とモジュール性の両方があるからです。これは(少なくとも)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関数です。

 /**
 * 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];
};
1
Fannon

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

let d = new Date();                      

this.dateField = element(by.xpath('xpath here'));
this.datetField.sendKeys((d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear());
1
RRR

この答えはISO-8601のようなフォーマットとタイムゾーンで日付を探している人々のためのものです。

      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/ /

0
alain.janinm

JavaScriptでnew Date()を使用して現在のブラウザの日付を取得できます。

しかし、現在、の日付と時刻を解析、検証、操作、表示するための優れたプラグインがありますmoment.js を使用して

0

あなたは現在の日付、昨日などを取得すると共に日付フォーマットを毎日使用するために以下に与えられた私のDATE APIを使用することができます。 

 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;

} ());
0
Yergalem

基礎

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
0
John Slegers

あなたが文字列にフォーマットしようとしているなら。

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

"time 11:30:53 AM"を出力する

0
Harry Bosh

カスタムフォーマットでレンダリングしたり、異なるロケールで月名を使用したりする機能があります。

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
0
Alex Ivasyuv