2012-03-06 68 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中的国际化和本地化仍然存在问题。