Siv*_*ini 4 javascript jquery date
我想检查一下我的日期是否大于当前日期
$("#EndDate").val() ="5/13/2014" ->M/d/y
Run Code Online (Sandbox Code Playgroud)
请在下面找到代码
if (Date.parse(new Date()) > Date.parse($("#EndDate").val())) {
//condition satisfied for today date too.
}
Run Code Online (Sandbox Code Playgroud)
所以我的结束日期是今天的日期.但是当前日期仍然大于结束日期.为什么?我该如何检查和验证这一点.我知道某些时间值大于结束日期.但我想只检查日期/月/年而不是时间.
如果:
$("#EndDate").val();
Run Code Online (Sandbox Code Playgroud)
以m/d/y格式返回一个字符串,您可以使用以下命令将其转换为日期对象:
function parseDate(s) {
var b = s.split(/\D/);
return new Date(b[2], --b[0], b[1]);
}
Run Code Online (Sandbox Code Playgroud)
要创建可比较的日期,请执行您正在执行的操作:
var today = new Date();
today.setHours(0,0,0,0);
Run Code Online (Sandbox Code Playgroud)
所以现在你可以这样做:
if (parseDate($("#EndDate").val()) > today) {
// date is greater than today
}
Run Code Online (Sandbox Code Playgroud)
或者如果你真的必须:
if (+parseDate($("#EndDate").val()) > new Date().setHours(0,0,0,0)) ...
Run Code Online (Sandbox Code Playgroud)
请注意,当你这样做时:
Date.parse(new Date().setHours(0, 0, 0, 0))
Run Code Online (Sandbox Code Playgroud)
首先是创建一个新的日期new Date().调用setHours()设置时间值,但调用的返回值是Date对象的UTC时间值.
Date.parse需要一个看起来像日期和时间的字符串,所以如果你传递一个像1399903200000这样的数字时间值,实现将回退到一些实现启发式,将其转换为Date或NaN.
所以请不要这样做.使用Date.parse解析任何字符串都取决于实现(即使是ECMA5中指定的字符串),并且将在不同的浏览器中返回不同的结果.所以请不要这样做.
尝试如下:
var end_date = "05/12/2014"
if(new Date() > new Date(end_date))
{
alert('End date should be greater than Start date');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27525 次 |
| 最近记录: |