JavaScriptで現在の日付を取得するにはどうすればいいですか?
現在の日付と時刻を含む新しい Date
オブジェクトを生成するには、new 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;
を好きなフォーマットに変更してください。
UPDATED!, Scroll Down
エンドユーザーにシンプルできれいなものを提供したい場合 ...また、以下の最初のバージョンでは、小さなサフィックスの問題を修正しました。適切にサフィックスを返すようになりました
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]。
今回のアップデートは2のフレーバーで、上記の、最初の回答ほどではありませんが、まだ比較的小さいです。極端に小さくしたいのであれば、そちらをご利用ください。
また、moment.jsと比較しても、まだ小さくなっています。moment.jsは素晴らしいですが、あまりにも多くの特殊なメソッドを持っているため、まるで言語のようにmomentを学ぶ必要があります。ここでの私のものは、PHP: dateと同じ共通フォーマットを使用しています。
フレーバー1 [
new Date().format(String)
][3]。 個人的な好みです。タブーとされていますが、Dateオブジェクトでの動作は素晴らしいです。ただ、Dateオブジェクトに他の改造を施している場合は注意が必要です。
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
フレーバー2 [
dateFormat(Date, String)
][4]。 より伝統的なオールインワン方式です。前者の機能はすべて持っていますが、Dateパラメータを持つメソッドを介して呼び出されます。
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
BONUSフレーバー(要jQuery)
$.date(Date, String)
。 これは、単なるformat
オプション以上のものを含んでいます。ベースとなる Date オブジェクトを拡張し、addDays
などのメソッドを含んでいます。詳細については、Gitを参照してください。
このMODでは、フォーマット文字はPHP: dateを参考にしています。完全なリストは、私のREADMEをご覧ください。
このMODには、もっと長い既製フォーマットのリストもあります。既成のフォーマットを使うには、単にそのキー名を入力します。dateFormat(new Date(), 'pretty-a');
*お気づきのように、ダブル \
で文字をエスケープすることができます。
[3]:
試してみてください。
。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