我有一个网页,它将UTC中的当前日期和时间作为参数传递到我的网页:
Example: https://test.com/SentValues.html?dtype=9/23/2015+2:15:16+PM<ype=http://abc.xyz/test.html
如何在jQuery中将其转换为日期时间值?我似乎无法让这个工作。目前,DateSent变量存储9/23/2015 + 2015 + 2:15:16 + PM。我似乎无法将其转换为日期时间。
jQuery(function ($) {
var DateSent = decodeURIComponent(GetURLParameter('dtype'));
var WebSite = GetURLParameter('ltype');
var PassedDT = new Date(DateSent);
var MinCurrentDT = new Date($.now());
var MaxCurrentDT = new Date($.now());
MinCurrentDT.setMinutes(MinCurrentDT.getMinutes() - 5);
MaxCurrentDT.setMinutes(MaxCurrentDT.getMinutes() + 5);
if (PassedDT >= MinCurrentDT && PassedDT <= MaxCurrentDT) {
alert('Inside range.');
}
else {
alert('Outside range.');
}
});
答案 0 :(得分:1)
“+”不以decodeURIComponent可以处理的方式编码。它期望空格表示为%20
。通过手动将空格替换为“+”,它将生成一个有效的日期对象。
///////// Encoded with +
var url = "https://test.com/SentValues.html?dtype=9/23/2015+2:15:16+PM<ype=http://abc.xyz/test.html";
// Extract dtype from URL
var dtype = url.split("dtype=");
dtype = dtype.length > 0 ? dtype[1] : "";
dtype = decodeURIComponent(dtype.split("&")[0]);
dtype = dtype.replace(/\+/g, " "); // Replace "+" with spaces
document.getElementById("plusresult").innerHTML = new Date(dtype);
///////// Encoded with %20
url = "https://test.com/SentValues.html?dtype=9/23/2015%202:15:16%20PM<ype=http://abc.xyz/test.html";
// Extract dtype from URL
dtype = url.split("dtype=");
dtype = dtype.length > 0 ? dtype[1] : "";
dtype = decodeURIComponent(dtype.split("&")[0]);
// No replacement necessary
document.getElementById("encoderesult").innerHTML = new Date(dtype);
<p>Result for URL with "+": <span id="plusresult"></span></p>
<p>Result for URL with "%20": <span id="encoderesult"></span></p>
答案 1 :(得分:0)
您是否考虑过使用momentjs? 我在此fiddle中使用了一个示例,但您可以在此处查看其他方法:http://momentjs.com/docs/
moment(MaxCurrentDT).format('HH:mm:ss DD-MM-YYYY')
//output: 14:07:35 23-09-2015