2017-05-09 12 views
0

私は剣道UIと協力して毎秒嫌うことがあります。私は自分の問題の修正を見つけたと思いますが、最後のストレッチにはまっています。だから私たちのサーバーはPST上にあり、何らかの理由でKendoのUIグリッドに実際の値より1日遅れた日付が表示されます。剣道UIタイムゾーンの日付が1日遅く表示されます

彼らが自分のサイトで「修正」を持っているが、それは正確ではスライドしないここで私は一緒に淘汰するために管理してきたものです:。

ここ列コードです:

columns.Bound(e => e.eventDate).Width(120).Title("Event Date").ClientTemplate("#= parseDateGrid(eventDate) #").EditorTemplateName("Date"); 

と日付を解析するためのコード:

var offsetMiliseconds = new Date().getTimezoneOffset() * 60000; 

function parseDateGrid(e) { 
    var eventDate = null; 
    if (e.sender) 
     eventDate = e.sender._value; 
    else 
     eventDate = e; 

// EVENTDATE =金2055年3月19日00:00:00 GMT-0400(東部夏時間)

var sDate = eventDate.toString(); 

    sDate = sDate.replace(/\d+/, 
    function (n) { return parseInt(n) + offsetMiliseconds }); 

EVENTDATEフィールドがあることを想定している// SDATE = "金マル14400019 2055 00:00:00 GMT-0400(東部夏時間)"

var eventDateFormatted = new Date(sDate); 

    return eventDateFormatted; 
} 

UI戻っ '無効な日付' 。私は、問題は私が間違って文字列を日付に置換機能の後にフォーマットしていると思う。私がここに近づいているような気がする。事前に助けてくれてありがとう。

EDIT:

は、この機能を使用して:

function addOffset(events) { 
    for (var i = 0; i < events.length; i++) { 
     var eventDate1 = new Date(events[i].eventDate); // for testing purpose 

     var sdate = eventDate1.getTime() + offsetMiliseconds; 
     var eventDateFormatted = new Date(sdate); 

     return eventDateFormatted.toLocaleDateString(); 
    } 
} 

答えて

1

あなたは機能を交換

使用getTime()を必要とし、それ

var offsetMiliseconds = new Date().getTimezoneOffset() * 60000; 
var eventDate = new Date("Fri Mar 19 2055 00:00:00 GMT-0400 (Eastern Daylight Time)"); // for testing purpose 

var sdate = eventDate.getTime() + offsetMiliseconds; 
var eventDateFormatted = new Date(sdate); 
alert(eventDateFormatted); 
にあなたのミリ秒を追加しないでください

ここではあなたのためのjsfiddle intermですediateアラートコメントを

https://jsfiddle.net/u3h0bjyp/

+0

おかげで、私はあなたのルーチンに日付を取得するかどうかはわかりませんが、私は近いと思います。質問が更新されました。 – TrevorGoodchild

+0

parseDateGrid関数で取得するeの値は何ですか? " –

+0

"/Date(2689041600000)/ " – TrevorGoodchild

関連する問題