Javascript日期格式

时间:2013-08-07 06:46:56

标签: javascript date datepicker

我已经尝试过最好的水平,但无法得到结果。我需要的是YYYY-MM-DD格式的日期。这是我目前的代码:

function AddDays(days) {

            var thisDate = new Date();
            thisDate.setDate(thisDate.getDate() + days);
            var dd = ( thisDate.getFullYear() + '-' + (thisDate.getMonth() + 1) + '-' + thisDate.getDate() );
            return dd;

        }

        alert(AddDays(365));

我得到的是“2014-8-7”,但我想把它作为YYYY-MM-DD。我需要它看起来像“2014-08-07”。

9 个答案:

答案 0 :(得分:1)

您需要检查日期或月份是否低于10,如果是,请在日期/月之前添加“0”:

function AddDays(days) {

        var dateObject = new Date();
        dateObject.setDate(new Date().getDate() + days);
        var year = dateObject.getFullYear();
        var month = dateObject.getMonth()+1 < 10 ? "0" + (dateObject.getMonth()+1) : dateObject.getMonth()+1;
        var date = dateObject.getDate() < 10 ? "0" + dateObject.getDate() : dateObject.getDate();
        return year + "-" + month + "-" + date;

}

alert(AddDays(365));

答案 1 :(得分:1)

var today = new Date();
console.log(today.getFullYear()+'-'+((today.getMonth()+1>9)?today.getMonth():'0'+(today.getMonth()+1))+'-'+(today.getDate()<10?'0'+today.getDate():today.getDate()));

小提琴: - http://jsfiddle.net/Ge4cw/

之前也曾问过: -

Get String in YYYYMMDD format from JS date object?

答案 2 :(得分:0)

function AddDays(days) {

            var thisDate = new Date();
            thisDate.setDate(thisDate.getDate() + days);
            return thisDate;

        }

alert(getReadableDate(AddDays(365)));


function getReadableDate(date) {
        return [date.getFullYear(), fillZeroes(date.getMonth() + 1), fillZeroes(date.getDate())].join('-');

        function fillZeroes(text) {
            return (new Array(2 - (text || '').toString().length + 1)).join('0') + (text || '');
        }
    }

答案 3 :(得分:0)

我曾经遇到过这个问题。我的解决方案是通过一个在必要时添加零的函数:

function addZero(date)
{
    if (date < 10)
       return "0"+date;
   return date;
}

或更小:

function addZero(date)
{
    return (date < 10)? "0"+date : date;
}

答案 4 :(得分:0)

Where can I find documentation on formatting a date in JavaScript?

我认为这个答案可以帮助你。

thisDate.getMonth()和thisDate.getDate()返回一个整数,该整数可能只有一位数。 您应该将其转换为字符串以添加&#34; 0&#34;:

实施例

var m = thisDate.getMonth()+1; // One digit month
m = '' + (m<=9 ? '0' + m : m); // Two digit month

答案 5 :(得分:0)

每次都有效:

var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear() + "-" + (month) + "-" + (day);
alert(today);

答案 6 :(得分:-1)

你需要这个:

function AddDays(days) {

            var thisDate = new Date();
            thisDate.setDate(thisDate.getDate() + days);
            var dd = ( thisDate.getFullYear() + '-' + ("0"+ (thisDate.getMonth() + 1)).slice(-2) + '-' + ( "0" + thisDate.getDate()).slice(-2) );
            return dd.toString('yyyy-MM-DD');;
        }
        alert(AddDays(365));

http://jsfiddle.net/w9fxr/1/

再次检查我亲爱的朋友,它将处理所有月份的单个和双位数

答案 7 :(得分:-1)

答案 8 :(得分:-1)

试试这个:

var thisDate = new Date();

alert(thisDate.getFullYear() + '-' + ("0" + (thisDate.getMonth() + 1)).slice(-2) + '-' + ("0" + (thisDate.getDate() + 1)).slice(-2));

Fiddle