【问题标题】:Date and time in javascriptjavascript中的日期和时间
【发布时间】:2015-11-04 23:25:43
【问题描述】:

如何在 javascript 中将日期和时间设为 12/08/2015-1:49?我尝试了以下方法,但出现错误TypeError: now.format is not a function

var now = new Date();
now.format("dd/mm/yy-h:mm tt");
console.log(now); //TypeError: now.format is not a function

【问题讨论】:

标签: javascript jquery


【解决方案1】:

在 JavaScript 中,Date 没有任何 format 方法。要么你需要使用任何其他外部库,比如momentjs,要么编写你自己的脚本来格式化。

这里是如何将日期转换为 dd/mm/yy-h:mm tt 格式的示例

    var now = new Date();

    var date = now.getDate() + "/" + (now.getMonth() + 1) + "/" + now.getFullYear() + "-" + now.getHours() + ":" + now.getMinutes() + " " + (now.getHours() > 12 ? "PM" : "AM");

    console.log(date)

【讨论】:

  • 您也许可以使用now.getFullYear() 而不是(1900-now.getYear())
  • @Becky,是的,你也可以使用它。谢谢提醒。
  • @LaxmikantDange 还有(1900-now.getYear()) 应该是(1900+now.getYear())
【解决方案2】:

试试这个:

function getFormattedDate() {
    var date = new Date();
    var str = date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getYear() + "-" +  date.getHours() + ":" + date.getMinutes() + " " + date.getSeconds();
    return str;
}

【讨论】:

    【解决方案3】:

    扩展Date的原型,添加函数格式

      Date.prototype.format = function(format){
        format = format || "Y/M/D H:I:S";
        var data = {
          y: this.getFullYear() % 100,
          Y: this.getFullYear(),
          m: this.getMonth() + 1,
          d: this.getDate(),
          h: this.getHours(),
          i: this.getMinutes(),
          s: this.getSeconds()
        };
        var needAddZeroLTTen = "mdhis".split('');
        for(var i = 0; i < needAddZeroLTTen.length; i ++){
          var prop = needAddZeroLTTen[i];
          data[prop.toUpperCase()] = data[prop] < 10 ? ('0' + data[prop]) : data[prop];
        }
        var dateStr = format;
        for(var i in data){
          var reg = new RegExp(i,'g');
          dateStr = dateStr.replace(reg, data[i]);
        }
        return dateStr;
      }
    

    然后使用下面的代码来格式化日期

    var date = new Date();
    var dateStr = date.format('D/M/y-h:I');
    

    【讨论】:

      【解决方案4】:

      在 js 中管理日期的最佳方法是使用 http://momentjs.com/ 在这里你会发现一个很好的方法来格式化日期

      【讨论】:

        【解决方案5】:

        你可以

        • 通过使用 Date 上的函数(如 date.getMonth())手动执行此操作,但是这些函数不支持零填充,而且它变得非常繁琐。仅当您无法包含第三方库、您对加载时间/性能很着迷或者您真的很喜欢重新发明轮子时才这样做。

        • 使用像moment这样的第三方库,它有多种格式并支持填充,例如MM 将强制月份为两个字符。

        例子

        var now = new Date();
        console.log(moment(now).format("DD/MM/YY-hh:mm Z"));
        

        【讨论】:

          【解决方案6】:

          Moment.JS 会帮助你。 请看一下这个 JSFiddle:http://jsfiddle.net/f3zp5zuv/

          alert (moment('2015 Apr 30').format('DD/MM/YY -h:mm'))
          

          时刻:http://momentjs.com/docs/#/displaying/

          alert (moment('2015 Apr 30 14:42:00').format('DD/MM/YY -h:mm'))
          &lt;script src="http://momentjs.com/downloads/moment.js"&gt;&lt;/script&gt;

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-03-05
            • 1970-01-01
            • 2016-11-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多