我有两个日期,其中一个是dd-mm-yyyy hh:mm
格式,另一个是dd-mm-yyyy (D1)
格式
我将dd-mm-yyyy hh:mm
格式日期拆分为仅dd-mm-yyyy (D2)
格式
然后我比较日期D2和D1,如
var D1 = new Date();
var D2 = new Date();
// D1 = 03-05-2014 this date take as an example
// D2 = 28-04-2014 00:00 this date take as an example
// D1 and D2 are taken by input fields.
split the D2 date
dat = D2.split(' ');
D2 = dat[0];
//finally D2 is 28-04-2014
if(D2<=D1)
{
echo "ok";
}
else{
echo "something is wrong";
}
我总是得到其他部分,这是因为我将日期从28-04-2014 00:00
分割为28-04-2014
吗?
答案 0 :(得分:7)
dateFirst = D1.split('-');
dateSecond = D2.split('-');
var value = new Date(dateFirst[2], dateFirst[1], dateFirst[0]); //Year, Month, Date
var current = new Date(dateSecond[2], dateSecond[1], dateSecond[0]);
而不是使用if条件
if(D2<=D1)
{
console.log('ok');
}
else
{
console.log('something is wrong');
}
答案 1 :(得分:5)
这实际上是你需要的
var D1 = "03-05-2014";
var D2 = "28-04-2014 00:00";
if ((new Date(D1).getTime()) >= (new Date(D2).getTime())) {
alert('correct');
} else {
alert('wrong');
}
答案 2 :(得分:2)
这是您正在进行的字符串比较,而不是日期比较
就字符串来说...... 2大于0 ......这就是为什么你总是会遇到错误的问题&#34;声明
编辑:这是对错误的解释 //创建日期变量 var D1 = new Date();
// Creates another date variable
var D2 = new Date();
// Converts this date variable into a string
D1 = 03-05-2014
// This is too is converted into a string
D2 = 28-04-2014 00:00
dat = D2.split(' ');
D2 = dat[0];
//finally D2 is 28-04-2014 <-- true, but it is a string
if(D2<=D1){ // <-- At this point you are doing a string comparison
echo "ok";
} else {
echo "something is wrong";
}
编辑:这是一种可行的解决方案。 。 。
而不是那样做,
var D1 = new Date();
var D2 = new Date();
if(D2.getTime() <= D1.getTime()){
echo "ok";
} else {
echo "something is wrong";
}
编辑:如果您是从输入字段获取,请执行此操作
// Make sure you dates are in the format YYYY-MM-DD.
// In other words, 28-04-2014 00:00 becomes 2014-04-28 00:00
// Javascript Date only accepts the ISO format by default
var D1 = new Date( $('#input1#').val() );
var D2 = new Date( $('#input2#').val() );
if(D2.getTime() <= D1.getTime()){
echo "ok";
} else {
echo "something is wrong";
}
答案 3 :(得分:0)
尝试:
var msg = new Date("03-05-2014").getTime() >= new Date("28-04-2014 00:00").getTime() ? 'Correct' : 'Wrong';
alert(msg);
答案 4 :(得分:0)
var now = new Date();
var end = new Date(//some other date hear);
if(now>end)
{
console.log('now=',now);
}
else
{
console.log('end=',end);
}
答案 5 :(得分:0)
您可以将日期比较为最简单易懂的方式。
<input type="date" id="getdate1" /> //with time include
<input type="date" id="getdate2" /> // without time include
首先编写一个通用的方法来解析日期方法。
<script type="text/javascript">
function parseDate(input) {
var parts = input.split(' ');
var datecomp=parts[0]; // will get
var timecomp=parts[1]; // will get time
var dparts=datecomp.split('-');
if(timecomp!=undefined && timecomp!=null){ //if there is like
var tparts=timecomp.split(':');
return new Date(dparts[2], dparts[1]-1, dparts[0], tparts[0], tparts[1]);
}else{ // for when no time is givin
return new Date(dparts[2], dparts[1]-1, dparts[0]);
}
return "";
}
</script>
在这里你可以调用上面的方法
<script type="text/javascript">
$(document).ready(function(){
//parseDate(pass in this method date);
Var Date1=parseDate($("#getdate1").val());
Var Date2=parseDate($("#getdate2").val());
//use any oe < or > or = as per ur requirment
if(Date1 = Date2){
return false; //or your code {}
}
});
</script>
只需使用parseDate方法并比较任何类型的日期。
答案 6 :(得分:-1)
将它们转换为毫秒,然后进行比较