JavaScriptで現在の日付を取得するにはどうすればよいですか?
new Date()
現在の日付ではなく、現在の時刻を返します。時間コンポーネントを持たない別の日付(つまり、午前0時)と比較する場合は、区別が重要です。
JavaScriptで現在の日付を取得するにはどうすればよいですか?
new Date()
現在の日付ではなく、現在の時刻を返します。時間コンポーネントを持たない別の日付(つまり、午前0時)と比較する場合は、区別が重要です。
回答:
現在の日付と時刻を含む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;
あなたが望むどんなフォーマットにでも変えてください。
01
、02
、...、09
Date.prototype.toLocaleDateString()
方法は、より柔軟なソリューションです。これはECMAScript 5.1以降のJavaScriptの一部であり、常緑樹のブラウザーによって十分にサポートされています。MDN:toLocaleDateString()
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
FirefoxやSafariがダッシュ付きの日付を認識しないため、などreplace
のutc
変数を再利用する場合は、このオプションを使用しますnew Date(utc)
。
toUTCString()
utc datetimeとして返されます。
moment( new Date().toJSON().slice(0, 10) )
更新しました!、 下へスクロール
エンドユーザーにかなりシンプルなものが欲しいなら... 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よりも膨らみが少ないです。imo.jsはいいですが、imoは世俗的なメソッドが多すぎるため、言語のようにモーメントを学習する必要があります。ここの鉱山は、PHPと同じ一般的な形式であるdateを使用しています。
フレーバー1
new Date().format(String)
私の個人的なお気に入り。私はタブーを知っていますが、日付オブジェクトでうまく機能します。日付オブジェクトに必要なその他の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。完全なリストについては、私のREADMEを参照してください
このmodには、事前に作成されたフォーマットのはるかに長いリストもあります。既成のフォーマットを使用するには、キー名を入力するだけです。dateFormat(new Date(), 'pretty-a');
お気づきのように、double \
を使用して文字をエスケープできます。
最短。
「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)
時刻情報のない日付だけが必要な場合は、次を使用します。
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
日付のフォーマットをより細かく制御したい場合は、momentjsをチェックすることをお勧めします。素晴らしいライブラリ-わずか5KB。 http://momentjs.com/
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>
moment().format("L")
、現在のロケールを尊重します。
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
ステップに分解するには:
(new Date()).toString()
「2013年6月28日金曜日15:30:18 GMT-0700(PDT)」と表示されます。
(new Date()).toString().split(' ')
上記の文字列をスペースごとに分割し、次のように配列を返します:["Fri"、 "Jun"、 "28"、 "2013"、 "15:31:14"、 "GMT-0700"、 "(PDT)" ]
(new Date()).toString().split(' ').splice(1,3).join(' ')
上記の配列から2番目、3番目、4番目の値を取得し、それらをスペースで結合して、文字列「Jun 28 2013」を返します
Date().split(' ').splice(1,3).join(' ')
var date = new Date().toLocaleDateString("en-US");
また、toLocaleDateString
2つのパラメータを使用してメソッドを呼び出すことができます。
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
new Date().toLocaleDateString("de-de")
私のためのトリックを行います。
よりクリーンでシンプルなバージョン:
new Date().toLocaleString();
結果は、ユーザーのロケールによって異なります。
2017年2月27日、午前9:15:41
Dateオブジェクトを拡張するDate.jsライブラリを使用できるため、.today()メソッドを使用できます。
次のように、現在の日付を取得して静的メソッドを呼び出すことができます。
var now = Date.now()
参照:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
var dtToday = new Date(date.now);
Varunの答えはTimezoneOffsetを考慮していません。これができるバージョンです:
var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11
TimezoneOffset
Dateコンストラクタはミリ秒、によるので、乗算をとりながら、数分です60000
。
new Date().toDateString();
結果:
「2016年2月3日水曜日」
toISOString()
唯一、現在のUTC時刻ではなく、ローカル時間を返します。次のyyyy-MM-dd
ような形式で日付を取得するには、「。toString()」関数を使用して日付を作成する必要があります
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',' '));
最新の編集:2019年8 月23 日date-fnsライブラリは、 moment.jsしかしWAY小さなフットプリントを持っています。プロジェクトに含める関数を簡単に選択できるため、ライブラリ全体をコンパイルして今日の日付をフォーマットする必要はありません。最小限のサードパーティ製libがプロジェクトの選択肢にならない場合は、サミュエルメドウズが承認したソリューションを推奨します。
少数の人々を助けたので、以下の履歴を保存します。しかし、この投稿のほとんどの解決策と同様に、記録としてはかなりハックで警告なしに壊れる可能性があります
編集2/7/2017 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、&chrometodaysDate = "2/7/2017"
はIE10 +で「機能する」*
説明
IE10とIE Edgeの動作が少し異なることがわかりました。とnew Date(Date.now()).toLocaleString()
を入力として、
IE10は次を返します:
"Tuesday, February 07, 2017 2:58:25 PM"
大きなlong関数とFTFYを書くことができました。しかし、あなたは本当にこのためにmoment.jsを使うべきです。私のスクリプトは単にこれを整理して、拡張された従来の米国表記法を提供します。> 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]
あなたに一日の時間を与えます。
これを使えます
<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>
jQueryを使用している場合。これを試してみてください:
$.datepicker.formatDate('dd/mm/yy', new Date());
日付をフォーマットするための規則は次のとおりです
これがjQuery datepickerのリファレンスです
(現在のタイムゾーンを考慮しながら、ISO yyyy-mm-dd形式を利用して)それを引き出すための最も簡単な方法は次のとおりです。
let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"
通常、これはかなり多目的に互換性のある日付形式であり、必要に応じて純粋な日付値に変換できます。
Date.parse(d); // 1582044297000
これの大きな問題は何ですか。これを行う最もクリーンな方法は、
var currentDate=new Date().toLocaleString().slice(0,10);
3/4/2018,
、間違いを返すので、使用しnew Date().toJSON().slice(0,10)
た方がよいでしょう。
.slice(0,10)
これはあなたを助けるかもしれません
var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());
現在の日付をdd / MM / yyyy形式で出力します
これはフォーマットされた日付を取得するのに適しています
let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);
これは古い質問だと思いますが、最も簡単な方法は次のとおりです。
var date = new Date();
var TimeStamp = date.toLocaleString();
function CurrentTime(){
alert(TimeStamp);
}
これにより、現在の時刻が取得され、場所に基づいて文字列に渡されるので、CurrentTime関数を呼び出して時刻を表示できます。これは、私にとって、何かのタイムスタンプを取得する最も効果的な方法です。
var currentTime = new Date();