2017-02-06 17 views
0

は私がJavaScriptで日付を別の形式に変換するにはどうすればよいですか?

2017-04-20T07:00:00Z 

としてAPIから日付を取得していますどのように私は次のようにそれをフォーマットするだろうか?私は日付を表示するように反応使ってい

20.04.2017 

<div>{props.data.day}</div> 
Iは、例えば試み

toISOString()スライス(0、10)。が正しく動作するようにはできませんでした。私も他の答えを見てみましたが、解決策はまだ見つかりませんでした。

+0

おそらく(http://stackoverflow.com/questions/4095677/changing-the-format-of-a-date-string)[* *日付文字列の形式を変更する]の複製。 – RobG

+1

また:moment.jsを見てください – nozzleman

+0

UTCの日付を使用するか、現地の日付に変換しますか?ハワイはUTC-1000ですので、2017-04-20T07:00:00Zは2017年4月19日午後9時(2017-04-19T021:00:00UTC-1000)です。 – RobG

答えて

1

任意のサードパーティのライブラリなしで動作するはずです以下:

console.log(convertDate(new Date("2017-04-20T07:00:00Z"))); 

function convertDate(date) { 
    var day = date.getDate(); 
    day = day < 10 ? "0" + day : day; 
    var month = date.getMonth() + 1; 
    month = month < 10 ? "0" + month : month; 
    var year = date.getFullYear(); 
    return day + "." + month + "." + year; 
} 

これが与える:

20.04.2017 

をあなたは関数としてコンポーネントにこれを追加して、戻り値を配置する必要がありますあなたのdivの内容

他の回答に記載されているように、タイムゾーンや他の時間ベースの問題に対処できるサードパーティのライブラリを使用する方がよいでしょう。

1

MomentJSを使用すると、日付文字列を解析して書式設定できます。あなたのために既にこれを行うライブラリを選択してください。ビジネスロジックについて心配する必要があります。成熟した使用。幅広く使用されているライブラリは、あなたのために重労働を行う。

console.log(moment('2017-04-20T07:00:00Z', moment.ISO_8601).format('DD.MM.YYYY'));
.as-console-wrapper { top: 0; max-height: 100% !important; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

ソフトウェア開発の一部は、コードの再利用です。あなたは日付ライブラリを開発していないので、作成することを心配すべきではありません。

0

結果を正規表現で解析できます。

function convertDate(date){ 
    var parsedDate = date.match(/^([\d]{4})-([\d]{2})-([\d]{2})/) 
    return parsedDate[2] + '.' + parsedDate[1] + '.' + parsedDate[0] 
} 
convertDate('2017-04-20T07:00:00Z') 
1

あなたは文字列として日付を保存している場合、あなたはそれをこのように変換することができます:

var i ='2017-04-20T07:00:00Z'; 
var date = i.split('T'); 
console.log(date[0].split('-').reverse().join('.')) 

これが与える:

20.04.2017 
+0

これはうまくいきましたが、私は別の答えに行くことにしました。とにかく、ありがとう – user45

0

をあなたは、その後に日、月、通年を抽出することができますあなたが望むように使用してください!

var oldDate = new Date('2017-04-20T07:00:00Z'); 

var d = oldDate.getDay().toString(); 
var m = oldDate.getMonth().toString(); 
var y = oldDate.getFullYear().toString(); 

if(d.length < 2){ 
    d = '0' + d; 
} 
if(m.length < 2){ 
    m = '0' + m; 
} 

var myDate = d + '/' + m + '/' + y; 

window.alert(myDate); 
関連する問題