首页 文章

在JavaScript中获取当前日期和时间

提问于
浏览
355

我有一个脚本,用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

有帮助吗?谢谢

25 回答

  • 0

    这个小代码很容易,无处不在 .

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

    有设计的空间

  • 503

    getDay() 获取星期几 . 3 是星期三 . 你想 getDate() ,那将返回 18 .

    另外 getMonth()0 开始,你需要添加 1 来获得 4 (四月) .

    演示:http://jsfiddle.net/4zVxp/

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

    检查出来可能会对你有用

    <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>
    
  • 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返回

  • -2

    要获得时间和日期,你应该使用

    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"
    

    阅读更多here .

  • 0

    这应该是诀窍:

    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

    只需使用:

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

    .getDay() 方法更改为 .GetDate() 并添加一个月,因为它从0开始计算月数 .

  • 1
    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
    
  • 1

    如果你想要真正的mysql样式日期时间使用这个

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

    您需要使用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();
    
  • 25

    基本的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(快速简便):使用(npm install date-and)安装npm pagckage,然后运行以下命令 .

    let nodeDate = require('date-and-time');
    let now = nodeDate.format(new Date(), 'DD-MMMM-YYYY, hh:mm:ss a');
    console.log(now);
    
  • 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
    
  • 0
    <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

    获取当前日期和时间

    var now = new Date(); 
      var datetime = now.getFullYear()+'/'+(now.getMonth()+1)+'/'+now.getDate(); 
      datetime += ' '+now.getHours()+':'+now.getMinutes()+':'+now.getSeconds();
    
  • 0
    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

    调用 .getMonth() 时,需要添加1才能显示正确的月份 . Javascript计数始终从0开始(查看here以检查原因),因此调用 .getMonth() in可能会返回 4 而不是 5 .

    所以在你的代码中我们可以使用 currentdate.getMonth()+1 来输出正确的值 . 此外:

    • .getDate() 返回该月的某一天 <- this is the one you want

    • .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 对象的新方法以返回今天的日期和时间 . 这些新方法或属性将由 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();
    
  • 0

    我找到了从这里获取JavaScript当前日期和时间的最简单方法 - How to get current Date and Time using 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;
    
  • 57

    我很好的回答是使用这个小小的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
    
  • 185
    var datetime = new Date().toLocaleString().slice(0,9) +" "+new Date(new Date()).toString().split(' ')[4];
    console.log(datetime);
    
  • 1

    这个问题很古老,答案也是如此 . 我们现在可以使用moment.js来获取当前日期,而不是那些可怕的函数,这实际上使它非常容易 . 所有必须做的就是在我们的项目中包含moment.js并获得一个格式良好的日期,例如:

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

    我认为这样可以更轻松地处理javascript中的日期 .

  • 11

    .getDay返回星期几 . 你需要.getDate . .getMonth返回0到11之间的值 . 您需要在结果中添加1才能获得“人工”月份数 .

  • 2

    它简单而精湛

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

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

相关问题