将RFC 822日期转换为javascript的有效日期
Convert RFC 822 date to valid Date for javascript
我正在使用一个脚本日历,当我选择一个日期时,它会将其转换为新的格式(yyyy-mm-dd)
它适用于大多数浏览器,但在Firefox和Opera中,我得到一个无效的日期格式,因为我使用的格式是RFC 822。
我正在寻找一种方法来转换这个日期格式
的例子:
Thu Sep 08 2011 12:00:00 GMT-0400 (EDT)
并将其更改为
2011-09-08
可以在javascript中完成吗?
这是我的代码试图将(EDT)替换为空
$(".taskDate").datepick({
onSelect: function(selectedDate){
selectedDate = selectedDate.replace(/ '(.+')/, '');
//alert(selectedDate);
var newDate = new Date(selectedDate);
$(".selectedDate").text(newDate.getFullYear()+'-'+(newDate.getMonth()+1)+'-'+newDate.getDate());
location.href="index.php?date="+newDate.getFullYear()+'-'+(newDate.getMonth()+1)+'-'+newDate.getDate();
}
});
现在我得到一个错误
selectedDate.replace is not a function
为什么?
更新2
修复了它,因为它看起来是一个对象而不是一个该死的字符串。添加
selectedDate = selectedDate.toString();
before new Date();
适用于Firefox6,参见我的jsfiddle。
var sOriginalDate = 'Thu Sep 08 2011 12:00:00 GMT-0400 (EDT)';
var oDate = new Date(sOriginalDate);
var iMonth = oDate.getMonth() + 1;
var iDay = oDate.getDate();
var sNewDate = oDate.getFullYear() + '-'
+ (iMonth < 10 ? '0' : '') + iMonth + '-'
+ (iDay < 10 ? '0' : '') + iDay;
alert(sNewDate);
由于日期是RFC 822,您可以将其解析为有效的日期(结束的EDT不影响结果):
var dateAsDateObject = new Date(Date.parse(dateInRFC822Format));
当dateInRFC822Format
等于"Thu Sep 08 2011 12:00:00 GMT-0400 (EDT)"
或"Thu Sep 08 2011 12:00:00 GMT-0400"
时
现在你可以从dateAsDateObject获得你需要的信息:
- year:
dateAsDateObject.getFullYear()
- 月:
dateAsDateObject.getMonth()
- day:
dateAsDateObject.getDay()
注意:用于格式化,如果您不介意使用jqueryui,您也可以使用$.datepicker.formatDate()
方法。例:var stringRepresentation = $.datepicker.formatDate('yy-mm-dd', dateAsDateObject);
尝试:
var mydate = new Date(originaldate);
mydate = mydate.getYear() + '-' + (mydate.getMonth() + 1) + '-' + mydate.getDate();
相关文章:
- 如何用javascript格式化日期
- 如何修复FF和IE中的Javascript无效日期错误
- javascript创建日期的月份错误
- Javascript设置日期不起作用,显示错误的时间
- javascript中日期的regex
- 用javascript将日期格式从d/m/yyyy转换为yyyy-mm-dd
- 如何在javascript中将字符串转换为有效日期
- JavaScript-截止日期未重置
- 新Date()javascript的日期字符串
- Javascript/Json日期转换问题
- 使用外部 JavaScript 显示日期/时间
- JavaScript 将日期转换为格式
- 如何使用 JavaScript 更改日期的时区而不更改时间
- JavaScript的日期时间比较和日期时间不同
- 在JavaScript中使用date.parse时,包含有效日期的内容
- 这是在 JavaScript 中检查有效日期的好方法吗?
- JavaScript-确保日期有效
- 将RFC 822日期转换为javascript的有效日期
- JavaScript中的有效日期
- 如何简化JavaScript中有效日期的检查和报告