将日期和时间拆分为两个元素

时间:2015-03-13 22:18:57

标签: javascript html oop date

我制作了一个显示日期和时间的对象。

我想知道如何将时间部分与日期分开,以便我可以将它放在自己的HTML元素中,这样我就可以应用不同的样式了吗?

我不是那么先进的JavaScript,我觉得使用日期对象非常复杂。

LiveDateTime.js

'use strict';

function LiveDateTime(dateEl, options) {
    this.dateEl = dateEl;
    this.options = options;

    this.timestamp;
    this.offset;

    this.start();
}

LiveDateTime.prototype = {
    start: function () {
        var now = !this.timestamp ? new Date() : new Date(this.timestamp),
            self = this;

        (function update() {
            self.dateEl.innerHTML = now.toLocaleString(self.options.locale, self.options);

            now.setSeconds(now.getSeconds() + 1);

            self.timeoutId = setTimeout(update, 1000);
        })();
    },

    stop: function () {
        clearTimeout(this.timeoutId);

        this.timeoutId = undefined;
    }
};

用法

var liveDateTime = new LiveDateTime(document.getElementById('date'), {
    locale: 'FR',
    weekday: 'long',
    day: 'numeric',
    month: 'long',
    year: 'numeric',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit'
});

//output example: vendredi 13 mars 2015 23:14:12 

HTML

<span id="date"></span> - <span id="time"></span>

4 个答案:

答案 0 :(得分:9)

使用date.toLocaleDateString() 对于日期部分。

和date.toLocaleTimeString() 对于时间部分。

答案 1 :(得分:1)

您可以使用日期可用方法设置日期格式:

&#13;
&#13;
var now = new Date()
var date = now.toLocaleDateString();
var time = now.toLocaleTimeString();
alert(date + ' ' + time)
&#13;
&#13;
&#13;

答案 2 :(得分:0)

  

我用JavaScript不是那么先进,而且我觉得使用日期对象非常复杂。

在JS中使用日期可能确实很复杂且令人沮丧。但是,通过使用momentjs

这样的库,这可能是一种乐趣

以便根据需要格式化日期:

moment().format('dddd Do MMMM YYYY'); // vendredi 13 mars 2015   (with FR locale)
                                      // Friday 13th March 2015  (with EN locale)

获得时间:

moment().format('H:mm:ss'); // 23:36:15

这些只是图书馆可能性的一小部分。

有关其他格式设置模式,请参阅this table of the documentation

答案 3 :(得分:0)

您可以使用javascript&#39; split()方法

var date = liveDateTime.split(" ");
    var weekday = date[0];
    var day = date[1];
    var month = date[2];
    var year = date[3];
var time = date[4].split(":");
    var hour = time[0];
    var minute = time[1];
    var second = time[2];