Obtenir la date et l'heure actuelles en JavaScript

J'ai un script qui imprime la date et l'heure actuelles en JavaScript, mais le DATEest toujours mauvais. Voici le code:

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

, Il doit imprimer 18/04/2012 15:07:33 et imprime 3/3/2012 15:07:33

De l'aide? Merci

345
demandé sur Mark Walters 2012-04-18 18:08:44

25 réponses

Lorsque vous appelez .getMonth(), vous devez ajouter +1 pour afficher le mois correct. Le nombre de Javascript commence toujours à 0 (regardez ici pour vérifier pourquoi), donc appeler .getMonth() en mai retournera 4 et non 5.

Donc, dans votre code, nous pouvons utiliser currentdate.getMonth()+1 pour afficher la valeur correcte. En outre:

  • .getDate() retourne le jour du mois
  • .getDay() est une méthode distincte de l'objet Date qui renverra un entier représentant le jour actuel de la semaine (0-6) 0 == Sunday, etc

Donc votre code devrait ressembler à ceci:

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

Les instances de date JavaScript héritent de la Date.prototype. Vous pouvez modifier l'objet prototype du constructeur pour affecter les propriétés et les méthodes héritées par les instances de date JavaScript

Vous pouvez utiliser le constructeur prototype pour l'objet Date et créer une nouvelle méthode de l'objet Date Pour renvoyer la date et l'heure du jour. Ces nouvelles méthodes ou les propriétés seront héritées par toutes les instances de l'objet Date, ce qui le rend particulièrement utile si vous avez besoin de réutiliser cette fonctionnalité.

// 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();
}

Vous pouvez alors simplement récupérer la date et l'heure en procédant comme suit:

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

Ou appelez la méthode en ligne pour qu'elle soit simplement -

var datetime = "LastSync: " + new Date().today() + " @ " + new Date().timeNow();
492
répondu Mark Walters 2014-08-04 18:06:54

Pour obtenir l'heure et la date vous devez utiliser

    new Date().toLocaleString();

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

Pour obtenir uniquement la date, vous devez utiliser

    new Date().toLocaleDateString();

>> "09/08/2014"

Pour obtenir seulement le temps que vous devez utiliser

    new Date().toLocaleTimeString();

>> "2:35:56 AM"

Ou si vous voulez juste l'heure au format hh:mm sans AM / PM pour l'Anglais Américain

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

Ou pour L'anglais britannique

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

>> "02:35"

Lire la suite ici .

177
répondu Chhorn Elit 2016-12-20 17:49:39

Si vous voulez une Vraie Date Heure de style mysql, utilisez ceci

2013/10/04 08:51:32

 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;
}
56
répondu Daniel Lee 2018-05-25 11:37:24

Il suffit d'utiliser:

var d = new Date();
document.write(d.toLocaleString());
document.write("<br>");
25
répondu Steve 2015-01-31 19:55:14
var currentdate = new Date();

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

Changez la méthode .getDay() en .GetDate() et ajoutez-en un au mois, car il compte les mois à partir de 0.

11
répondu Chuck Norris 2012-04-18 14:13:02

getDay() reçoit le jour de la semaine. 3 est mercredi. Vous voulez getDate(), qui retournera 18.

Aussi getMonth() commence à 0, vous avez besoin d'ajouter 1 pour obtenir 4 (avril).

Démo: http://jsfiddle.net/4zVxp/

4
répondu Rocket Hazmat 2012-04-18 14:12:37

Cela devrait faire l'affaire:

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
répondu sp00m 2012-04-18 14:13:03

Vous devez utiliser getDate() pour obtenir la partie date. La fonction getDay () renvoie le numéro de jour (dimanche = 0, lundi = 1...), et getmonth () renvoie un index basé sur 0, Vous devez donc l'incrémenter de 1.

 var currentdate = new Date(); 

 var datetime = "Last Sync: " + currentdate.getDate() + "/"+  (parseInt(currentdate.getMonth())    + 1)
   + "/" + currentdate.getFullYear() + " @ "  
   + currentdate.getHours() + ":"  
   + currentdate.getMinutes() + ":" + currentdate.getSeconds(); 
4
répondu Scorpion-Prince 2012-04-18 14:15:00

Récupère la date et l'heure actuelles

var now = new Date(); 
  var datetime = now.getFullYear()+'/'+(now.getMonth()+1)+'/'+now.getDate(); 
  datetime += ' '+now.getHours()+':'+now.getMinutes()+':'+now.getSeconds(); 
3
répondu surendar 2013-12-16 11:51:39

J'ai trouvé le moyen le plus simple d'obtenir la date et l'heure actuelles en JavaScript à partir d'ici - Comment obtenir la Date et L'heure actuelles en utilisant 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
répondu JoyGuru 2016-04-21 07:02:02

.getday renvoie le jour de la semaine. Vous avez besoin d' .getDate à la place. .getMonth renvoie des valeurs de 0 à 11. Vous devrez ajouter 1 au résultat pour obtenir le numéro de mois "humain".

2
répondu Oleg V. Volkov 2012-04-18 14:14:51

Ce petit code est facile et fonctionne partout.

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

Il y a de la place pour concevoir

2
répondu Varoon Ramtahal 2014-12-15 18:06:24
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
répondu deepakssn 2013-03-22 10:04:45

Cette question est assez ancienne et les réponses le sont aussi. Au lieu de ces fonctions monstrueuses, nous pouvons maintenant utiliser moment.js pour obtenir la date actuelle, ce qui le rend très facile. Tout ce qui doit être fait est notamment un instant.js dans notre projet et obtenir un formatage de date, par exemple:

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

Je pense que cela facilite la gestion des dates en javascript.

1
répondu bambam 2014-12-19 02:20:43

Je pense que je suis très en retard pour partager ma réponse, mais je pense que cela en vaudra la peine.

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 am / pm')); //retour de 1:5:30 PM

1
répondu Shivam Gupta 2016-12-05 13:51:45
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
répondu philippe 2017-04-28 15:01:02

Je devais comprendre cela pour une ardoise dans after effects. Voici ce que j'ai trouvé après avoir pris des éléments de quelques sources différentes - le formatage est MM / jj / aaaa 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
répondu Bjorn Ahlstedt 2017-05-17 18:51:31

Basic js (bon à apprendre): nous utilisons la fonction Date () et faisons tout ce dont nous avons besoin pour afficher la date et le jour dans notre format personnalisé.

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): installez le pagckage npm en utilisant (npm install date-and-time), puis exécutez le ci-dessous.

let nodeDate = require('date-and-time');
let now = nodeDate.format(new Date(), 'DD-MMMM-YYYY, hh:mm:ss a');
console.log(now);
1
répondu Girish Mahadevan 2018-05-20 15:14:57
dt= new Date();
alert(dt.toISOString().substring(8,10) + "/" + 
dt.toISOString().substring(5,7)+ "/" + 
dt.toISOString().substring(0,4) + " " + 
dt.toTimeString().substring(0,8))
0
répondu GraninDm 2014-08-07 18:19:18
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
répondu Wasim 2015-12-22 09:39:38

Ma réponse bien intentionnée est d'utiliser ce tout petit bout de 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
répondu Ron Royston 2016-05-03 22:02:11
var datetime = new Date().toLocaleString().slice(0,9) +" "+new Date(new Date()).toString().split(' ')[4];
console.log(datetime);
0
répondu Moshood Awari 2016-11-28 07:39:11

Son simple et superbe

 $(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>

Veuillez trouver le violon ci-dessous pour l'exemple

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

0
répondu Abhilash Thomas 2017-09-11 07:15:57

Vérifiez cela peut être que cela fonctionnera pour vous

<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>
-2
répondu Gurpreet.Singh 2013-04-12 15:26:11

<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>
-3
répondu RABBIL 2018-01-11 01:35:48