2016-10-10 25 views
4

この形式の日付が必要です:'%Y-%m-%dT%H:%M:%S+0000'。私は関数を書いたが、これを行うより良い方法がないかどうか自分に依頼する。 これは私の関数である:javascriptの日付の書式設定

function formatDate() { 
    var d = new Date(); 
    var year = d.getMonth() + 1; 
    var day = d.getDate(); 
    var month = d.getMonth() + 1; 
    var hour = d.getHours(); 
    var min = d.getMinutes(); 
    var sec = d.getSeconds(); 
    var date = d.getFullYear() + "-" + (month < 10 ? '0' + month : month) + "-" + 
     (day < 10 ? '0' + day : day) + 
     "T" + (hour < 10 ? '0' + hour : hour) + ":" + (min < 10 ? '0' + min : min) + ":" + (sec < 10 ? '0' + sec : sec) + "+0000"; 
    return date; 
} 

少ないコードでこれを行う方法上の任意の理想的な?

+6

私はこのためにmoment.jsのようなライブラリを使用することをお勧めします。 – ViRuSTriNiTy

+2

この場合は、moment.jsに対してお勧めします。あなたのソリューションは、特にきれいではありませんが(日付の書式設定はコードにはうまくありません)、軽量の日付ライブラリをインポートするよりもはるかに軽いものになります。 – gelliott181

+0

3行目は不要です。 –

答えて

4

1行で入力できます。私は簡単にするために2つの行を作った。 2行目と3

var d = new Date(); 
 
date = d.toISOString().toString(); 
 
var formattedDate = date.substring(0, date.lastIndexOf(".")) + "+0000"; 
 
console.log(formattedDate);

2

使用moment.jsを組み合わせます。

moment().format('YYYY-MM-DDTh:mm:ss+0000') 

JSBIN

console.log(moment().format('YYYY-MM-DDTh:mm:ss+0000'))
<script src="https://cdn.jsdelivr.net/momentjs/2.14.1/moment-with-locales.min.js"></script>

1
var d = new Date(); 
var dateString = d.getUTCFullYear() +"-"+ (d.getUTCMonth()+1) +"-"+ d.getUTCDate() + " " + d.getUTCHours() + ":" + d.getUTCMinutes() + ":" + d.getUTCSeconds()+"+0000"; 

0を返すgetUTCMonth - 11を、ので、あなたは文字列に変換する前に1を追加します。