2017-04-25 8 views
0

dateTime文字列形式(dd/MM/yyyy HH:mm:ss)をローカルユーザー時間に変換しようとしています。このコードは動作していますが、私はそれがmoment.jsを使用して、より簡単な書き込みをすることが可能だと思う...しかし、私はどのように理解していません。例えば瞬間を使用して日時文字列形式をローカル日時ブラウザに変換します。

$(document).ready(function() { 
     $(".DateToLocalTime").each(function() { 
      ConvertToLocalTime(this); 
     }); 
    }); 

function ConvertToLocalTime(div) { 
    debugger; 
    var input = div.innerText; 
    var formatedDate = moment(input, 'DD/MM/YYYY HH:mm:ss').format(); 
    var newDate = moment.utc(formatedDate).toDate(); 

    var offset = newDate.getTimezoneOffset()/60; 
    var hours = newDate.getHours(); 

    newDate.setHours(hours - offset); 
    var formatedDateFinale = moment(newDate).format('DD/MM/YYYY HH:mm:ss'); 
    div.html(formatedDateFinale); 
} 

13/04/2017 09:30: 私はこの日付がある場合は入力として'15を、次いで:

  • formatedDate =「2017-04- 13T09:30:15 + 03:00"
  • inputDate =木2017年4月13日9時30分15秒GMT + 0300(GTB夏時間)
  • inputDate.ge tTimezoneOffset()= -180
  • = -3を相殺しました。
  • 事前にformatedDateFinale = '13/04/2017年12時30分15秒

多くのおかげで、あなたは私を助けるためにしたい場合。

答えて

1

あなたが特定の文字列形式で、現地時間のUTCから変換しようとしているようです。

は、手動くらいにやろうとしています。瞬間はあなたのためにこれを行うことができます。

// define the format 
var fmt = 'DD/MM/YYYY HH:mm:ss'; 

// parse your input string as UTC, using that format 
var m = moment.utc(input, fmt); 

// convert to local time 
m.local(); 

// create the output string in the same format 
var result = m.format(fmt); 

それとも単に:

var fmt = 'DD/MM/YYYY HH:mm:ss'; 
var result = moment.utc(input, fmt).local().format(fmt); 
+0

ありがとうございました!!!! –

+0

もう一つ質問があります。私は、現在の文化ゾーンに従って日付形式が表示されるようにしたい場合は、私が使用できることを読んで** moment.lang(のCurrentCulture)**が、私はこの国の文化に応じ** FMT **変数を取得することができますか?。 –

+0

ここで質問を連鎖させるべきではありません。その問題の具体的な詳細とともに新しい質問をしてください。ありがとう。 –

関連する問題