2017-07-14 5 views
0

私は以下のように日付文字列を持っています。私はYYYY-MM-DD HH:mm:SSのような形式になりたいです。JavaScriptの日付書式(瞬時を優先)

var str1 = '2018-02-20T10:10:00.000+01:00'; 

がフォーマット - > '2018年2月20日10時10分00秒'

var str2 = '2018-02-20T11:50:00.000+00:00'; 

書式設定 - > '2018年2月20日午前11時50分00秒'

ありがとう

答えて

2

瞬時に好きなように、フォーマット方法を使用すると簡単です。

詳細については
var offset = moment().utcOffset() - moment(str).utcOffset(); 

console.log(moment(str).add(offset, 'minute').format('YYYY-MM-DD hh:mm:ss')); 

- ここhttp://momentjs.com/docs/#/displaying/format/

+0

それは私がこれを望んでいない私達のロケール を使用して出力>「2018年2月20日12時10分00秒」//です。 –

+0

@ Mr.Ayanlar私はutc offsetを使用するように編集しました。実際には時間が変わっていますが、出力は大丈夫です。 – emil

+0

var offset = moment()。parseZone()。utcOffset() - moment.parseZone(文字列).utcOffset(); var result = moment(str).add(オフセット* -1、 '分')。書式( 'YYYY-MM-DD HH:mm:SS') ありがとうございます –

0

あなたは、コードの例があります。

function formatDate(date) { 
    var hours = date.getHours(); 
    var minutes = date.getMinutes(); 
    var seconds = date.getSeconds(); 
    hours = hours ? hours : 12; // the hour '0' should be '12' 
    minutes = minutes < 10 ? '0'+minutes : minutes; 
    var strTime = hours + ':' + minutes + ":" + seconds; 
    return date.getFullYear() + "/" + (date.getMonth()+1) + "/" + date.getDate()+ " " + strTime; 
} 

var d = new Date(); 
var e = formatDate(d); 
alert(e); 

そして、ここであなたはjsfiddle例があります。 https://jsfiddle.net/6ccvkg5j/

0

は@emilありがとうございます。 私の答えは次のようである:

var str = '2018-02-20T03:10:00.000-01:00'; 
var offset = moment().parseZone().utcOffset() - moment.parseZone(str).utcOffset(); 
var result = moment(str).add(offset * -1, 'minute').format('YYYY-MM-DD HH:mm:SS');