Javascript:替换日期's的全名和全名,共有3个字母.星期二>星期二

Javascript: Replace Date's full day name and full month name with 3 letters. Tuesday > Tue

本文关键字:全名 星期二 共有 gt 3个 替换 日期 Javascript      更新时间:2023-09-26

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

这是代码: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);

只需添加以下内容:

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

代码:http://jsfiddle.net/raNms/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);

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

一种简单的方法:

    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

使用合适的库,如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"。