JavaScriptで現在の日付と時刻を取得する


449

JavaScriptで現在の日付と時刻を出力するスクリプトがありますが、これDATEは常に間違っています。これがコードです:

var currentdate = new Date();
var datetime = "Last Sync: " + currentdate.getDay() + "/" + currentdate.getMonth() 
+ "/" + currentdate.getFullYear() + " @ " 
+ currentdate.getHours() + ":" 
+ currentdate.getMinutes() + ":" + currentdate.getSeconds();

印刷18/04/2012 15:07:33して印刷する必要があります3/3/2012 15:07:33

何か助けは?ありがとう


10
一般に、使用しているAPIのドキュメントを読むように努める必要があります。これは、JavaScript日付オブジェクトのドキュメントです:developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…。問題を解決するために知っておくべきことはすべてそこにあります。
Steven Oxley


@リカルド:MDNは、これや他の多くの問題の優れたリファレンスです。是非ご利用ください。
ジョン

5
人々は常に特定の質問について不平を言いますが、ドキュメントを読んで答えられなかったSOに関する質問はほとんどありません。このサイトが気に入っているのは、この質問とまったく同じように、簡潔な回答と、私がやろうとしていることを行う方法の例が含まれているためです。
Chris Sharp

3
グーグルの人々がAPIドキュメントの代わりにここに来たとき、人々にフィードを悪くさせずに知識を共有することはそれほど悪いことですか?
マウリシオグラシアグティエレス

回答:


577

.getMonth()はゼロベースの数値を返すため、1を追加する必要がある正しい月を取得するには、.getMonth()inを呼び出すとが返され4、は返されません5

したがって、コードではcurrentdate.getMonth()+1、正しい値を出力するために使用できます。加えて:

  • .getDate()月の日を返します<-これはあなたが欲しいものです
  • .getDay()Dateオブジェクトの個別のメソッドであり、現在の曜日(0-6)0 == Sundayなどを表す整数を返します。

したがって、コードは次のようになります。

var currentdate = new Date(); 
var datetime = "Last Sync: " + currentdate.getDate() + "/"
                + (currentdate.getMonth()+1)  + "/" 
                + currentdate.getFullYear() + " @ "  
                + currentdate.getHours() + ":"  
                + currentdate.getMinutes() + ":" 
                + currentdate.getSeconds();

JavaScriptのDateインスタンスはDate.prototypeを継承します。コンストラクターのプロトタイプオブジェクトを変更して、JavaScript Dateインスタンスによって継承されるプロパティとメソッドに影響を与えることができます

あなたは利用することができDate、今日の日付と時刻を返します新しいメソッドを作成するために、プロトタイプオブジェクト。これらの新しいメソッドまたはプロパティは、Dateオブジェクトのすべてのインスタンスによって継承されるため、この機能を再利用する必要がある場合に特に役立ちます。

// For todays date;
Date.prototype.today = function () { 
    return ((this.getDate() < 10)?"0":"") + this.getDate() +"/"+(((this.getMonth()+1) < 10)?"0":"") + (this.getMonth()+1) +"/"+ this.getFullYear();
}

// For the time now
Date.prototype.timeNow = function () {
     return ((this.getHours() < 10)?"0":"") + this.getHours() +":"+ ((this.getMinutes() < 10)?"0":"") + this.getMinutes() +":"+ ((this.getSeconds() < 10)?"0":"") + this.getSeconds();
}

その後、次の操作を行うだけで日付と時刻を取得できます。

var newDate = new Date();
var datetime = "LastSync: " + newDate.today() + " @ " + newDate.timeNow();

または、メソッドをインラインで呼び出すと、次のようになります-

var datetime = "LastSync: " + new Date().today() + " @ " + new Date().timeNow();

11
12時間とAM / PMの小さな変更 Date.prototype.timeNow = function(){ return ((this.getHours() < 10)?"0":"") + ((this.getHours()>12)?(this.getHours()-12):this.getHours()) +":"+ ((this.getMinutes() < 10)?"0":"") + this.getMinutes() +":"+ ((this.getSeconds() < 10)?"0":"") + this.getSeconds() + ((this.getHours()>12)?('PM'):'AM'); };
Robert Speer 2013年

2
@RobertSpeer素敵な提案。この投稿を最後に更新してから、日付オブジェクトのより使いやすいメソッドを記述しました。now()これは、日付のみまたは日付と時刻の両方を返すかどうかを決定するブールパラメーターを使用して呼び出す日付オブジェクトと、日付の形式を指定する2番目のパラメーターです。などすなわち、DD / MM / YYYYに返されるべきである
マーク・ウォルターズ

1
00:04:02のような時間は、最初の提案では0:4:2のようにレンダリングされることに注意してください。これは要求されたものではありません。:この問題を解決するためには、第二の提案の三項演算子を追加することができます (date.getHours() < 10 ? "0" : "") + date.getHours() + ":" + (date.getMinutes() < 10 ? "0" : "") + date.getMinutes() + ":" + (date.getSeconds() < 10 ? "0" : "") + date.getSeconds();
マット・

1
おそらく少し骨の折れるものです。しかし、取得/印刷メソッド中に現在の日付/時刻が変更されるのを避けるために、タイムスタンプを一時オブジェクトに保存しないでください。
2015

1
アップデート:('0' + this.getDate()).slice(-2)より短いように思える(this.getDate() < 10)?"0":"") + this.getDate()
タン

279

時間と日付を取得するには、使用する必要があります

    new Date().toLocaleString();

>> "09/08/2014, 2:35:56 AM"

使用すべき日付のみを取得するには

    new Date().toLocaleDateString();

>> "09/08/2014"

あなたが使うべき時間だけを得るには

    new Date().toLocaleTimeString();

>> "2:35:56 AM"

またはhh:mm、米国英語の場合、AM / PMなしの形式で時刻が必要な場合

    new Date().toLocaleTimeString('en-US', { hour12: false, 
                                             hour: "numeric", 
                                             minute: "numeric"});
>> "02:35"

またはイギリス英語

    new Date().toLocaleTimeString('en-GB', { hour: "numeric", 
                                             minute: "numeric"});

>> "02:35"

詳細はこちら


3
これはほとんどのブラウザで機能しますが、互換性はこちらで
QuethzelDíazMay

1
あまりにも悪いあなたはこれで簡単にマイクロ/ミリ秒を取得することはできません
wordsforthewise

1
一を足す。両方の数字を保持する方法を探していました。私が使っていたgetHours()getMinutes()する前に、しかし、あなたは形式、01、唯一の1を得ることはありません
ジョン

68

この真のmysqlスタイルでは、以下の関数を使用します。 2019/02/28 15:33:12

  • 下の[コードスニペットを実行]ボタンをクリックした場合
  • シンプルなリアルタイムデジタル時計の例が表示されます
  • デモはコードスニペットの下に表示されます。

function getDateTime() {
        var now     = new Date(); 
        var year    = now.getFullYear();
        var month   = now.getMonth()+1; 
        var day     = now.getDate();
        var hour    = now.getHours();
        var minute  = now.getMinutes();
        var second  = now.getSeconds(); 
        if(month.toString().length == 1) {
             month = '0'+month;
        }
        if(day.toString().length == 1) {
             day = '0'+day;
        }   
        if(hour.toString().length == 1) {
             hour = '0'+hour;
        }
        if(minute.toString().length == 1) {
             minute = '0'+minute;
        }
        if(second.toString().length == 1) {
             second = '0'+second;
        }   
        var dateTime = year+'/'+month+'/'+day+' '+hour+':'+minute+':'+second;   
         return dateTime;
    }

    // example usage: realtime clock
    setInterval(function(){
        currentTime = getDateTime();
        document.getElementById("digital-clock").innerHTML = currentTime;
    }, 1000);
<div id="digital-clock"></div>



11
var currentdate = new Date();

    var datetime = "Last Sync: " + currentdate.getDate() + "/"+(currentdate.getMonth()+1) 
    + "/" + currentdate.getFullYear() + " @ " 
    + currentdate.getHours() + ":" 
    + currentdate.getMinutes() + ":" + currentdate.getSeconds();

.getDay()メソッドをに変更し.GetDate()、1を月に追加します。これは、0から月をカウントするためです。


5

これでうまくいくはずです:

function dateToString(date) {
    var month = date.getMonth() + 1;
    var day = date.getDate();
    var dateOfString = (("" + day).length < 2 ? "0" : "") + day + "/";
    dateOfString += (("" + month).length < 2 ? "0" : "") + month + "/";
    dateOfString += date.getFullYear();
    return dateOfString;
}

var currentdate = new Date();
var datetime = "Last Sync: ";
datetime += dateToString(currentdate );
datetime += + currentdate.getHours() + ":"
            + currentdate.getMinutes() + ":"
            + currentdate.getSeconds();

4

getDay()曜日を取得します。 3水曜日です。あなたが望むgetDate()、それは戻り18ます。

またgetMonth()から始まり0、あなたが追加する必要があります1取得するには4(4月)。

デモ:http : //jsfiddle.net/4zVxp/


4

日付部分を取得するには、getDate()を使用する必要があります。getDay()関数は日数(Sunday = 0、Monday = 1 ...)を返し、getMonth()は0ベースのインデックスを返すため、1ずつ増やす必要があります。

 var currentdate = new Date(); 

 var datetime = "Last Sync: " + currentdate.getDate() + "/"+  (parseInt(currentdate.getMonth())    + 1)
   + "/" + currentdate.getFullYear() + " @ "  
   + currentdate.getHours() + ":"  
   + currentdate.getMinutes() + ":" + currentdate.getSeconds(); 

4

私はここからJavaScriptで現在の日付と時刻を取得する最も簡単な方法を見つけました-JavaScriptを使用して現在の日付と時刻を取得する方法

var today = new Date();
var date = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
var CurrentDateTime = date+' '+time;

3

現在の日付と時刻を取得する

var now = new Date(); 
  var datetime = now.getFullYear()+'/'+(now.getMonth()+1)+'/'+now.getDate(); 
  datetime += ' '+now.getHours()+':'+now.getMinutes()+':'+now.getSeconds(); 

00:03:04などの時間を0:3:4として報告します。
Keir Finlow-Bates 2016

2

.getDayは曜日を返します。代わりに.getDateが必要です。.getMonthは0〜11の値を返します。「人間」の月番号を取得するには、結果に1を追加する必要があります。


2

この質問はかなり古く、答えも古いです。これらの巨大な関数の代わりに、現在の日付を取得するためにmoment.jsを使用できるようになりました。実行する必要があるのは、プロジェクトにmoment.jsを含め、適切な形式の日付を取得することだけです。たとえば、次のようにします。

moment().format("dddd, MMMM Do YYYY, h:mm:ss a");

私はそれがJavaScriptで日付を処理することをより簡単にすると思います。


2
どのような巨大な関数-ワンライナーまたは5ライナーを数Kのブラックボックスコードに置き換えますか?
mplungjan

2
function UniqueDateTime(format='',language='en-US'){
    //returns a meaningful unique number based on current time, and milliseconds, making it virtually unique
    //e.g : 20170428-115833-547
    //allows personal formatting like more usual :YYYYMMDDHHmmSS, or YYYYMMDD_HH:mm:SS
    var dt = new Date();
    var modele="YYYYMMDD-HHmmSS-mss";
    if (format!==''){
      modele=format;
    }
    modele=modele.replace("YYYY",dt.getFullYear());
    modele=modele.replace("MM",(dt.getMonth()+1).toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("DD",dt.getDate().toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("HH",dt.getHours().toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("mm",dt.getMinutes().toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("SS",dt.getSeconds().toLocaleString(language, {minimumIntegerDigits: 2, useGrouping:false}));
    modele=modele.replace("mss",dt.getMilliseconds().toLocaleString(language, {minimumIntegerDigits: 3, useGrouping:false}));
    return modele;
}

1
function getTimeStamp() {
       var now = new Date();
       return ((now.getMonth() + 1) + '/' + (now.getDate()) + '/' + now.getFullYear() + " " + now.getHours() + ':'
                     + ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes())) + ':' + ((now.getSeconds() < 10) ? ("0" + now
                     .getSeconds()) : (now.getSeconds())));
}

1

この小さなコードは簡単で、どこでも機能します。

<p id="dnt"></p>
<script>
document.getElementById("dnt").innerHTML = Date();
</script>

設計する余地があります


1

私は私の答えを共有するのは非常に遅いと思いますが、それは価値があると思います。

function __getCurrentDateTime(format){
    var dt=new Date(),x,date=[];
    date['d']=dt.getDate();
    date['dd']=dt.getDate()>10?dt.getDate():'0'+dt.getDate();
    date['m']=dt.getMonth()+1;
    date['mm']=(dt.getMonth()+1)>10?(dt.getMonth()+1):'0'+(dt.getMonth()+1);
    date['yyyy']=dt.getFullYear();
    date['yy']=dt.getFullYear().toString().slice(-2);
    date['h']=(dt.getHours()>12?dt.getHours()-12:dt.getHours());
    date['hh']=dt.getHours();
    date['mi']=dt.getMinutes();
    date['mimi']=dt.getMinutes()<10?('0'+dt.getMinutes()):dt.getMinutes();
    date['s']=dt.getSeconds();
    date['ss']=dt.getSeconds()<10?('0'+dt.getSeconds()):dt.getSeconds();
    date['sss']=dt.getMilliseconds();
    date['ampm']=(dt.getHours()>=12?'PM':'AM');
    x=format.toLowerCase();
    x=x.indexOf('dd')!=-1?x.replace(/(dd)/i,date['dd']):x.replace(/(d)/i,date['d']);
    x=x.indexOf('mm')!=-1?x.replace(/(mm)/i,date['mm']):x.replace(/(m)/i,date['m']);
    x=x.indexOf('yyyy')!=-1?x.replace(/(yyyy)/i,date['yyyy']):x.replace(/(yy)/i,date['yy']);
    x=x.indexOf('hh')!=-1?x.replace(/(hh)/i,date['hh']):x.replace(/(h)/i,date['h']);
    x=x.indexOf('mimi')!=-1?x.replace(/(mimi)/i,date['mimi']):x.replace(/(mi)/i,date['mi']);
    if(x.indexOf('sss')!=-1){   x=x.replace(/(sss)/i,date['sss']);  }
    x=x.indexOf('ss')!=-1?x.replace(/(ss)/i,date['ss']):x.replace(/(s)/i,date['s']);
    if(x.indexOf('ampm')!=-1){  x=x.replace(/(ampm)/i,date['ampm']);    }
    return x;
}

console.log(__getCurrentDateTime());  //returns in dd-mm-yyyy HH:MM:SS
console.log(__getCurrentDateTime('dd-mm-yyyy'));    //return in 05-12-2016
console.log(__getCurrentDateTime('dd/mm*yyyy'));    //return in 05/12*2016
console.log(__getCurrentDateTime('hh:mimi:ss'));    //return in 13:05:30

console.log(__ getCurrentDateTime( 'h:mi:ss ampm')); //午後1時5分30秒に戻る


1

私はアフターエフェクトのスレートのためにこれを理解する必要がありました。これは、いくつかの異なるソースから要素を取得した後に私が思いついたものです-フォーマットはMM / DD / YYYY HH:MM AM / PMです

D = new Date(Date(00));
M = D.getMonth()+1;
H = D.getHours();
Mi = D.getMinutes();

N = "AM"
if (H >= 12)
N = "PM"
if (H > 12)
{
H = H-12
}

amtOfZeroes = 2;
isNeg = false;

if (M < 0)
{
M = Math.abs(M);
isNeg = true;
}
Mo = Math.round(M) + "";
while(Mo.length < amtOfZeroes)
{

Mo = "0" + Mo; 
}
if (isNeg)
Mo = "-" + Mo;

if (H < 0)
{
H = Math.abs(H);
isNeg = true;
}
Ho = Math.round(H) + "";
while(Ho.length < amtOfZeroes)
{
Ho = "0" + Ho; 
}
if (isNeg)
Ho = "-" + Ho;

if (Mi < 0)
{
Mi = Math.abs(Mi);
isNeg = true;
}
Min = Math.round(Mi) + "";
while(Min.length < amtOfZeroes)
{
Min = "0" + Min; 
}
if (isNeg)
Min = "-" + Min;

T = Ho + ":" + (Min)

Mo + "/" + D.getDate() + "/" + D.getFullYear() + "  " + T + " " + N

1

基本的なJS(学ぶのに良い):Date()関数を使用して、カスタム形式で日付と曜日を表示するために必要なすべてのことを行います。

var myDate = new Date();

let daysList = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
let monthsList = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Aug', 'Oct', 'Nov', 'Dec'];


let date = myDate.getDate();
let month = monthsList[myDate.getMonth()];
let year = myDate.getFullYear();
let day = daysList[myDate.getDay()];

let today = `${date} ${month} ${year}, ${day}`;

let amOrPm;
let twelveHours = function (){
    if(myDate.getHours() > 12)
    {
        amOrPm = 'PM';
        let twentyFourHourTime = myDate.getHours();
        let conversion = twentyFourHourTime - 12;
        return `${conversion}`

    }else {
        amOrPm = 'AM';
        return `${myDate.getHours()}`}
};
let hours = twelveHours();
let minutes = myDate.getMinutes();

let currentTime = `${hours}:${minutes} ${amOrPm}`;

console.log(today + ' ' + currentTime);


Node JS(quick&easy):(npm install date-and-time)を使用してnpm pagckageをインストールし、以下を実行します。

let nodeDate = require('date-and-time');
let now = nodeDate.format(new Date(), 'DD-MMMM-YYYY, hh:mm:ss a');
console.log(now);

0
dt= new Date();
alert(dt.toISOString().substring(8,10) + "/" + 
dt.toISOString().substring(5,7)+ "/" + 
dt.toISOString().substring(0,4) + " " + 
dt.toTimeString().substring(0,8))

あなたのコードが何をするか、そしてそれがどのように質問に答えるかの説明を含めてください。答えとしてコードスニペットを取得した場合、それをどうするかわからない可能性があります。回答では、OPと将来の訪問者に、問題をデバッグして修正する方法に関するガイダンスを提供する必要があります。コードの背後にあるアイデアが何であるかを指摘すると、問題を理解し、ソリューションを適用または変更するのに非常に役立ちます。
Palec 2014

このコードは説明のために非常に原始的です。コンソールで実行するだけ
GraninDm 2014

それはあなたにとっても今も原始的です。1年はどうですか?あなたのように流暢にJavaScriptを読まない人はどうですか?の新しいインスタンスを使用するDatetoISOString()toTimeString()という行に沿って何かを追加することをお勧めしますから日付コンポーネントを解析し、から時間を追加します。
Palec 2014

このアプローチは最適ではありません。コードを読みにくく、不必要な解析が必要です。例えばtoISOString().substring(8,10)と同じgetFullYear()です。
Palec 2014

0
function display_c(){   
    var refresh = 1000; // Refresh rate in milli seconds    
    mytime = setTimeout('display_ct()', refresh)    
}

function display_ct() {

    var strcount    
    var currentdate = new Date();

    document.getElementById('ct').innerHTML = currentdate.toDateString() + " " + currentdate.getHours() + ":" + currentdate.getMinutes() + ":" + currentdate.getSeconds();

    tt = display_c();   
}


id = 'ct'     // Replace in Your id

onload = "display_ct();"     // Type inside a Body Tag

0

私の意図した答えは、JSのこの小さなビットを使用することです:https : //github.com/rhroyston/clock-js

clock.now   --> 1462248501241
clock.time  --> 11:08 PM
clock.weekday   --> monday
clock.day   --> 2
clock.month --> may
clock.year  --> 2016
clock.since(1462245888784)  --> 44 minutes
clock.until(1462255888784)  --> 2 hours
clock.what.time(1462245888784)  --> 10:24 PM
clock.what.weekday(1461968554458)   --> friday
clock.what.day('14622458887 84')    --> 2
clock.what.month(1461968554458) --> april
clock.what.year('1461968554458')    --> 2016
clock.what.time()   --> 11:11 PM
clock.what.weekday('14619685abcd')  -->     clock.js error : expected unix timestamp as argument
clock.unit.seconds  --> 1000
clock.unit.minutes  --> 60000
clock.unit.hours    --> 3600000
clock.unit.days --> 86400000
clock.unit.weeks    --> 604800000
clock.unit.months   --> 2628002880
clock.unit.years    --> 31536000000


0

そのシンプルで素晴らしい

 $(document).ready(function () { 
            var fpsOut = document.getElementById('myTime');
            setInterval(function () {
                var d = new Date(); 
                fpsOut.innerHTML = d;
            }, 1000);
        });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myTime"></div>

例については、以下のフィドラーを見つけてください

http://jsfiddle.net/4zVxp/483/


0

誰かが機能を求めているなら

console.log(formatAMPM());
function formatAMPM() {
  var date = new Date();
  var hours = date.getHours();
  var minutes = date.getMinutes();
  var seconds = date.getSeconds();
  var ampm = hours >= 12 ? 'PM' : 'AM';
  hours = hours % 12;
  hours = hours ? hours : 12; // the hour '0' should be '12'
  minutes = minutes < 10 ? '0'+minutes : minutes;
  return strTime = date.getMonth() + '/' + date.getDay()+'/'+date.getFullYear()+' '+ hours + ':' + minutes +':'+ seconds + " " +ampm;
}

-1

これはあなたのために働くかもしれないかもしれませんチェックしてください

<script language="JavaScript">
var dayarray=new Array("Sunday","Monday",
 "Tuesday","Wednesday","Thursday","Friday","Saturday")

var montharray=new Array("January","February","March",
 "April","May","June","July","August","September",
 "October","November","December")

function getthedate(){
var mydate=new Date()
var year=mydate.getYear()
if (year < 1000)
year+=1900
var day=mydate.getDay()
var month=mydate.getMonth()
var daym=mydate.getDate()
if (daym<10)
daym="0"+daym
var hours=mydate.getHours()
var minutes=mydate.getMinutes()
var seconds=mydate.getSeconds()
var dn="AM"
if (hours>=12)
dn="PM"
if (hours>12){
hours=hours-12
}
if (hours==0)
hours=12
if (minutes<=9)
minutes="0"+minutes
if (seconds<=9)
seconds="0"+seconds
//change font size here
var cdate="<small><font color='000000' face='Arial'><b>"+dayarray[day]+", 
    "+montharray[month]+" "+daym+", "+year+" "+hours+":"
 +minutes+":"+seconds+" "+dn
    +"</b></font></small>"
if (document.all)
document.all.clock.innerHTML=cdate
else if (document.getElementById)
document.getElementById("clock").innerHTML=cdate
else
document.write(cdate)
}
 if (!document.all&&!document.getElementById)
  getthedate()
  function goforit(){
  if (document.all||document.getElementById)
 setInterval("getthedate()",1000)
}

 </script>

enter code here

 <span id="clock"></span>

-4

<p id="DateTimeBox">Click The Button To Show Date And Time</p>
<button onclick="ShowDate();"> Show Date </button>
<script>
  function ShowDate() {
    document.getElementById('DateTimeBox').innerHTML = Date();
  }
</script>


コードのみの投稿ではなく、コメントを含める必要があります。
codechurn 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.