如何格式化日期输出?

时间:2014-01-23 18:46:25

标签: javascript date format getdate

所以我提前道歉,我对Javascript很新。我正在创建一个饲料,但我被卡住了。 第一天的输出显示为“2014年2月3日13:23:03 GMT-0500(东部标准时间)”,我只想阅读“2月3日”或“2月3日”。请帮忙!!!这是我的代码

<script type="text/javascript">   
    Date.prototype.getWeek = function() {
        var onejan = new Date(this.getFullYear(),0,1);
        return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
    } 
    function getMonday(d) {
        var day = d.getDay(),
        diff = d.getDate() - day + (day == 0 ? -6 : 1)+14; 
        return new Date(d.setDate(diff));
    }

    var firstday = getMonday(new Date());               
    var weekNumber = (new Date()).getWeek()+3;

    // Array of day names
    var dayNames = "Week ";
    var now = new Date();
    document.write("<h2 align='center' style='margin-bottom:0;'>");
    document.write(dayNames + weekNumber);
    document.write("</h2>");
    document.write("<p align='center' style='margin-top:5px;'><strong>Deploying the week of ");
    document.write(firstday);
    document.write("</strong></p>");
</script>

4 个答案:

答案 0 :(得分:0)

    function formatDate(theDate) {

        var month = theDate.getMonth()+1;
        var year = theDate.getYear();
        var day = theDate.getDate();
        var zero = "0";
        if(day<10) day = zero.concat(day);
        if(month<10) month = zero.concat(month);
        if(year<1000) year += 1900;

        t = (String(year) + '-' + String(month) + '-' + String(day));
        return t;
    }

    function stdDate(theDate) {

        var month = theDate.getMonth()+1;
        var year = theDate.getYear();
        var day = theDate.getDate();
        var zero = "0";
        if(day<10) day = zero.concat(day);
        if(month<10) month = zero.concat(month);
        if(year<1000) year += 1900;

        t = (String(day) + '.' + String(month) + '.' + String(year));
        return t;
    }

答案 1 :(得分:0)

我们可以使用某些方法简单地格式化字符串,以创建我们自己的格式化日期:

var months = [ "January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December" ];

var date = new Date()
var month = date.getMonth(); // Returns the Month as a number 
var day = date.getDate(); // Returns the Day of the Month as a number 

var formattedDate = months[month]+" "+day; // January 23

答案 2 :(得分:0)

.toLocaleString()功能将解决您的问题。

var date=new Date();
var arr=date.toLocaleString().split(' ');
document.write(arr[1]+" "+arr[0]);

查看小提琴here

修改

要添加23rd,21日,15日等文本,您可以编写像

这样的commonFunction
function getSuffix(num) {
    var stringAppend = "";
    switch (num % 10) {
        case 1:
            stringAppend = "st";
            break;
        case 2:
            stringAppend = "nd";
            break;
        case 3:
            stringAppend = "rd";
            break;
                default:
            stringAppend = "th";
            break;
    }
    return num + stringAppend;
}

答案 3 :(得分:0)

我真的建议你远离手动计算,并使用一个非常好且经过测试的库来解析,验证,操作和格式化日期,称为Moment.js

通过这种方式,您可以安全地依赖它进行计算并简化代码:

// Get last monday.
var lastMonday = moment().startOf('isoweek');
// Add two weeks to last monday.
var nextSecondMonday = lastMonday.add('weeks', 2);
// Format the next second monday for presentation.
var firstDay = nextSecondMonday.format('MMMM Do');
// Get next second monday week number.
var weekNumber = nextSecondMonday.isoWeek();

document.write("<h2 align='center' style='margin-bottom:0;'>");
document.write('Week ' + weekNumber);
document.write("</h2>");
document.write("<p align='center' style='margin-top:5px;'><strong>Deploying the week of ");
document.write(firstDay);
document.write("</strong></p>");

此代码假设您现在开始执行某些操作并在两周的星期一结束(例如,打开新的开发冲刺),您需要获取这些值以便用户知道何时部署它如果它现在开始请注意,下周它会显示另一个日期,因为它总是会增加2周。因此,例如,如果结果是2月3日,那么下周将显示2月10日,并且不会保持2月3日直到2月3日。我不确定这是否是你需要的,因为我快速查看了你的代码而你没有对计算进行评论(你应该为以后做些)。如果您需要将日期保持到2月3日,那么在进行数学和使用Moment.js时更改此代码应该不会太困难。