我有幾個文本框,用戶從一個按鈕點擊開始設置日期和日期,該按鈕點擊將7天或減法7添加到每個框中的當前值。在文本框中的JavaScript設置日期不一致
第一次加載頁面時,添加到文本框中的日期基於屬於組的用戶。因此,如果用戶屬於組A,則起始日期是星期日,但是如果用戶屬於組B,則它是星期五。這個邏輯我在ASP.Net頁面的頁面加載事件中設置。
讓我感到困惑的情況是,雖然我可以設置日期,並讓我的JavaScript與A組一起工作,但如果將用戶切換到B組,並且單擊某個按鈕而不是期望更改日期從1月17日1月10日,它跳躍到12月29日2014年這似乎是得到一個完全不同的值最初1月5日到2015年
JavaScript的我已經是:
var fromDateIn = new Date(formatDate(document.getElementById('<%=txtFromDate.ClientID%>').value));
var newfromdate = new Date(fromDateIn);
在按鈕事件之一,我有:
function setNewFromDate() {
newfromdate.setDate(newfromdate.getDate() - 7);
document.getElementById('<%= txtFromDate.ClientID%>').value = formatDate(newfromdate);
var toDate = new Date(newfromdate);
document.getElementById('<%= txtToDate.ClientID%>').value = formatDate(toDate.setDate(toDate.getDate() + 6));
}
正如我所說的,一切都很完美,當用戶是一個羣組時,我得到了正確的日期,但是儘快將用戶更改爲另一個羣組並將初始日期設置爲日期,我就會遇到此問題。任何人都可以請建議我可以得到一致性呢?
感謝
你應該嘗試使用momentjs做你的日期和時間的東西。幫助所有的邊緣情況。 – Oak
您是否嘗試過在調試器中查看變量值?你確定'formatDate()'產生一個可以正確轉換成Date對象的值嗎?我懷疑'fromDateIn'沒有你期望的值,並且它拋棄了其他的東西。您是否驗證過您的'formatDate()'函數(您沒有向我們顯示,BTW)是專爲處理毫秒值輸入而設計的? – JLRishe
我只是用alert()框做的,這是我看到5/01/2015的地方,但在文本框中顯示的是17/01/2014。所以我不能看到新的價值來自哪裏 – Andy5