0

我将如何以以下格式在 javascript 中格式化日期:June 2, 2013, 1:05 p.m.

这是一个相关链接,但我仍然无法获得这种精确的格式,基于Date(). http://www.webdevelopersnotes.com/tips/html/10_ways_to_format_time_and_date_using_javascript.php3

4

4 回答 4

1

这应该对你有用:http: //blog.stevenlevithan.com/archives/date-time-format

于 2013-06-02T20:12:28.473 回答
1

我建议moment.js。这里是: http: //momentjs.com/

导入它并执行此操作

moment().format('LLL'); 

这就是你想要的

于 2013-06-02T20:15:17.163 回答
1

为什么不编写一个函数来为您获取日期的位和return一个对象,它可以让您像字符串连接对象属性一样轻松地构建一个字符串。

下面的示例将始终以 UTC 时间为基础

var easyDate = (function () {
    var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
        months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
        thstndrd = ['th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th'];
    return function (d) {
        var dow = d.getUTCDay(),
            dom = d.getUTCDate(),
            moy = d.getUTCMonth(),
            y = d.getUTCFullYear(),
            h = d.getUTCHours(),
            m = d.getUTCMinutes(),
            s = d.getUTCSeconds();
        return {
            dom: '' + dom,
            th: thstndrd[dom % 10],
            day: days[dow],
            moy: '' + (moy + 1),
            month: months[moy],
            year: '' + y,
            ampm: h < 12 ? 'a.m.' : 'p.m.',
            hh: h < 10 ? '0' + h : '' + h,
            sh: '' + (h % 12 || 12),
            mm: m < 10 ? '0' + m : '' + m,
            ss: s < 10 ? '0' + s : '' + s,
        };
    };
}());

var o = easyDate(new Date());
// Object {dom: "2", th: "nd", day: "Sunday", moy: "6", month: "June"…}
o.month + ' ' + o.dom + ', ' + o.sh + ':' + o.mm + ' ' + o.ampm;
// "June 2, 8:43 p.m."
于 2013-06-02T20:43:25.887 回答
0

在 w3schools,您可以找到对 Javascript 的 Date 对象的完整参考

然后您可以使用这些方法组合成您喜欢的字符串。

var d = new Date();

d.getHours() + ":" + ...

没有获取月份名称的方法,您需要获取数字并创建一个开关。

小时是 24 小时格式,所以你必须转换和计算它是am还是pm

您可以直接使用的日期和getDate()年份getFullYear()

参考

于 2013-06-02T20:13:23.400 回答