2012-03-06 66 views
3

在我的表格中,我有一個文本框,我有一個叫做「pickup日期」的字段。我正在使用jquery Datepicker。日期格式爲dd/mm/yyyy。但是,當我嘗試使用JavaScript重新創建日期時,日期錯誤地顯示爲月份,而月份顯示爲日期。如何解決這個問題?我當前的腳本和值都低於:日期格式誤區

<script language="javascript" type="text/javascript"> 
var dateStart = '07/03/2012'; //dd/mm/YYYY format 
var timeStart = '09:00'; 

var startDate = new Date(dateStart + " " + timeStart); 

document.write(startDate); 

</script> 

上面給出的日期和時間值:

Tue Jul 03 2012 09:00:00 

它應該顯示爲

Wed Mar 07 2012 09:00:00 

如何解決這個問題?

+0

您可以通過回饋社區來表達您的感謝,而不是在每篇文章末尾使用樣板字符。 – 2012-03-06 15:07:43

+0

這是什麼意思? – Devner 2012-03-06 19:04:08

+0

這意味着,請不要在帖子末尾寫上「謝謝」簽名:) – 2012-03-06 19:09:06

回答

0

好了,經過這麼多時間,我終於想出了自己的解決方案,而不必使用任何外部複雜計算庫。到目前爲止,對我來說,它看起來好像它的工作完美。以下是代碼:

<script language="javascript" type="text/javascript"> 

var dateStart = '07/03/2012'; 
var timeStart = '09:00'; 

var startDate = new Date(dateStart + " " + timeStart); 

document.write(startDate); 
document.write('<br />'); 

//declare an array 
var my_arr = Array(); 
//explode/split the dd/mm/yyyy string so that we can collect it in our array 
my_arr = dateStart.split('/'); 
//join the pieces of array in our mm/dd/yyyy format 
var revised_date = my_arr[1] + '/' + my_arr[0] + '/' + my_arr[2]; 
//Generate the complete date 
var startDate_revised = new Date(revised_date + " " + timeStart); 
//Output the date 
document.write(startDate_revised); 
</script> 

並感謝所有的貢獻。真的很感謝所有的幫助。

0

JavaScript使用是mm/dd/YYYY

1

日期是軟弱的東西與本地JavaScript工作時的日期的美國形式。我覺得使用像momentjs這樣的圖書館可以幫助你處理日期。

1

查一查如何使時間戳和這些工作,你的日期轉換爲時間戳,當你想打印

功能的JavaScript將其轉換回一個日期在你想要的格式:

得到當前時間戳

new Date().getTime(); //in miliseconds 

打印時間戳字符串

//make formated date 
var date = new Date(unix_timestamp*1000); 
// hours part from the timestamp 
var hours = date.getHours(); 
// minutes part from the timestamp 
var minutes = date.getMinutes(); 
// seconds part from the timestamp 
var seconds = date.getSeconds(); 

// will display time in 10:30:23 format 
var formattedTime = hours + ':' + minutes + ':' + seconds; 

字符串時間戳

//this only supports limited formats 
function toTimestamp(strDate){ 
var datum = Date.parse(strDate); 
return datum/1000; 
} 

function toTimestamp(year,month,day,hour,minute,second){ 
var datum = new Date(Date.UTC(year,month-1,day,hour,minute,second)); 
return datum.getTime()/1000; 
} 
+0

是否可以應用此檢索正確的日期,月份和年份?我目前正在搞這個,並且仍然會把月份打印爲Jul,而不是Mar – Devner 2012-03-06 18:31:15

+0

+1,以表示您的努力和指針。我上面發佈了我自己的解決方案。 – Devner 2012-03-06 20:44:59

+0

@Denver,是的,我認爲是的,試着在谷歌上查找Date函數,應該更像.getSeconds。我不知道那些出於我的頭頂^^ – MakuraYami 2012-03-07 08:46:15

0

看一看globalize.js - 這將讓您對如何管理日期字符串轉換更多的控制,使您的軟件可以更容易地適應基於文化的不同用戶格式需求。

JavaScript中的國際化和本地化仍然存在問題。