Ottenere la data e l’ora correnti in JavaScript

Ho uno script che stampa la data e l’ora correnti in JavaScript, ma la DATE è sempre sbagliata. Ecco il codice:

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

Dovrebbe essere stampato il 18/04/2012 15:07:33 e stampato il 3/3/2012 15:07:33

Qualsiasi aiuto? Grazie

Quando si chiama .getMonth() è necessario aggiungere +1 per visualizzare il mese corretto. Il conteggio di Javascript parte sempre da 0 (guarda qui per controllare perché), quindi chiamare .getMonth() in maggio restituirà 4 e non 5 .

Quindi nel tuo codice possiamo usare currentdate.getMonth()+1 per currentdate.getMonth()+1 il valore corretto. Inoltre:

  • .getDate() restituisce il giorno del mese < - questo è quello che vuoi
  • .getDay() è un metodo separato dell’object Date che restituirà un numero intero che rappresenta il giorno corrente della settimana (0-6) 0 == Sunday ecc.

quindi il tuo codice dovrebbe assomigliare a questo:

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

Le istanze Date JavaScript ereditano da Date.prototype. È ansible modificare l’object prototipo del costruttore per influire sulle proprietà e sui metodi ereditati dalle istanze Date di JavaScript

È ansible utilizzare il costruttore prototipo per l’object Date e creare un nuovo metodo dell’object Date per restituire la data e l’ora di oggi. Questi nuovi metodi o proprietà saranno ereditati da tutte le istanze dell’object Date , rendendolo così particolarmente utile se è necessario riutilizzare questa funzionalità.

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

È quindi ansible recuperare semplicemente la data e l'ora attenendosi alla seguente procedura:

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

Oppure chiama il metodo inline in modo che sia semplicemente -

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

Per ottenere ora e data dovresti usare

  new Date().toLocaleString(); >> "09/08/2014, 2:35:56 AM" 

Per ottenere solo la data che dovresti usare

  new Date().toLocaleDateString(); >> "09/08/2014" 

Per ottenere solo il tempo che dovresti usare

  new Date().toLocaleTimeString(); >> "2:35:56 AM" 

O se si desidera solo l’ora nel formato hh:mm senza AM / PM per l’inglese americano

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

o per l’inglese britannico

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

Leggi di più qui .

Se vuoi usare lo stile di data vero mysql, usa questo

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; } 

Basta usare:

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

Cambia il metodo .getDay() in .GetDate() e aggiungine uno al mese, perché conta mesi da 0.

getDay() ottiene il giorno della settimana. 3 è mercoledì. Vuoi getDate() , che restituirà 18 .

Anche getMonth() inizia da 0 , devi aggiungere 1 per ottenere 4 (aprile).

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

Questo dovrebbe fare il trucco:

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

È necessario utilizzare getDate () per ottenere la parte della data. La funzione getDay () restituisce il numero del giorno (domenica = 0, lunedì = 1 …) e getMonth () restituisce un indice basato su 0, quindi è necessario incrementarlo di 1.

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

ottenere la data e l’ora correnti

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

.getDay restituisce il giorno della settimana. Hai bisogno di .getDate invece. .getMonth restituisce valori da 0 a 11. Dovrai aggiungere 1 al risultato per ottenere il numero del mese “umano”.

Questo piccolo codice è facile e funziona ovunque.

 

c’è spazio per progettare

Ho trovato il modo più semplice per ottenere la data e l’ora correnti in JavaScript da qui – Come ottenere la data e l’ora correnti usando 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; 
 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()))); } 

Questa domanda è abbastanza vecchia e anche le risposte. Invece di quelle mostruose funzioni, ora possiamo usare moment.js per ottenere la data corrente, che in effetti rende molto semplice. Tutto ciò che deve essere fatto è includere moment.js nel nostro progetto e ottenere una data ben formata, ad esempio, da:

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

Penso che sia più facile gestire le date in javascript.

Penso di essere in ritardo per condividere la mia risposta, ma penso che varrà la pena.

 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’)); // ritorno in 1: 5: 30 PM

 function UniqueDateTime(format='',language='en-US'){ //returns a meaningful unique number based on current time, and milliseconds, making it virtually unique //eg : 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; } 

Avevo bisogno di capire questo per una lista in After Effects. Ecco cosa mi è venuto in mente dopo aver preso elementi da alcune fonti diverse – La formattazione è MM / GG / 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 

JS di base (buono da imparare): usiamo la funzione Date () e facciamo tutto ciò di cui abbiamo bisogno per mostrare la data e il giorno nel nostro formato personalizzato.

 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); 
 dt= new Date(); alert(dt.toISOString().substring(8,10) + "/" + dt.toISOString().substring(5,7)+ "/" + dt.toISOString().substring(0,4) + " " + dt.toTimeString().substring(0,8)) 
 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 

La mia risposta ben intenzionata è quella di usare questo piccolo frammento di 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 
 var datetime = new Date().toLocaleString().slice(0,9) +" "+new Date(new Date()).toString().split(' ')[4]; console.log(datetime); 

È semplice e superbo

  $(document).ready(function () { var fpsOut = document.getElementById('myTime'); setInterval(function () { var d = new Date(); fpsOut.innerHTML = d; }, 1000); }); 
  

Controlla che potrebbe funzionare per te

  enter code here  
 

Click The Button To Show Date And Time