Javascript:用3个字母替换日期的全天名称和完整月份名称。周二>星期二

时间:2012-01-07 21:08:01

标签: javascript

我有一个简单的片段,可以打印全天,月,日,小时和分钟。

这是代码: http://jsfiddle.net/raNms/

我想改变

的位置
Monday > Mon
Tuesday > Tue
...

和月:

January > Jan
February > Feb
...

可以在追加到身体之前完成吗?我不想替换附加的文本,而是从头开始正确打印。

JavaScript:

var now= new Date(),
    ampm= 'am',
    h= now.getHours(),
    m= now.getMinutes(),
    s= now.getSeconds();
    if(h>= 12){
        if(h>12)h-= 12;
        ampm= 'pm';
    }
    if(h<10) h= '0'+h;
    if(m<10) m= '0'+m;
    var time = now.toLocaleDateString()+' '+h+':'+m+' '+ampm

   $('body').html(time);

4 个答案:

答案 0 :(得分:1)

这是一种很好的方式:http://www.webdevelopersnotes.com/tips/html/getting_current_time_using_javascript.php3

以下是您的代码与更改的相似之处:

输出:

Sat, Jan 7 2012 04:21 pm

代码:

var now= new Date(),
    ampm= 'am',
    h= now.getHours(),
    m= now.getMinutes(),
    s= now.getSeconds();
    if(h>= 12){
        if(h>12)h-= 12;
        ampm= 'pm';
    }
    if(h<10) h= '0'+h;
    if(m<10) m= '0'+m;


var weekdayNames = new Array("Sun", "Mon", "Tuey",
"Wed", "Thu", "Fri", "Sat");

var monthNames = new Array("Jan", "Feb", "Mar", 
"Apr", "May", "Jun", "Jul", "Aug", "Sep", 
"Oct", "Nov", "Dec");

    //var dateString = now.toLocaleDateString();
    var weekday = weekdayNames[now.getDay()];
    var month = monthNames[now.getMonth()];
    var dateString = weekday + ', ' + month + ' ' + now.getDate() + ' ' + now.getFullYear();
    var time = dateString +' '+h+':'+m+' '+ampm

   $('body').html(time);

我还为它创建了一个jsFiddle http://jsfiddle.net/luisperezphd/raNms/2/

答案 1 :(得分:1)

只需添加:

var txt = now.toLocaleDateString().replace(/\b[a-z]+\b/gi,function($0){return $0.substring(0,3)});

代码:http://jsfiddle.net/raNms/1/

答案 2 :(得分:0)

一个简单的方法:

    var now= new Date(),
    ampm= 'am',
    h= now.getHours(),
    m= now.getMinutes(),
    s= now.getSeconds();
    if(h>= 12){
        if(h>12)h-= 12;
        ampm= 'pm';
    }
    if(h<10) h= '0'+h;
    if(m<10) m= '0'+m;
    t = now.toLocaleDateString();
    var time = t.split(',')[0].substring(0,3) + ', ' +
               t.split(',')[1].substring(1,4) + ' ' + 
               t.split(',')[1].split(' ')[2] +
               t.split(',')[2] + ', ' +
               ' '+h+':'+m+' '+ampm

   $('body').html(time);

输出:

Sat, Jan 07 2012, 10:20 pm

答案 3 :(得分:0)

使用合适的库,例如Globalize.js。处理这类事情的特殊代码需要更多工作,往往不太可靠,并且当您需要修改软件时意味着负担。

示例:

Globalize.format(today,'ddd, MMM d, yyyy') + ' ' + Globalize.format(today,'T')

产生例如

Sat, Jan 7, 2012 11:32:21 PM

您可以通过修改格式化字符串来调整外观。

请注意,toLocaleString根据定义是系统相关的,因此它可能会生成任何语言的工作日名称(或根本不会)。以下是您的代码在我的环境中在一个浏览器上生成的内容: “7。 tammikuuta 2012 11:26 pm“。