【问题标题】:Javascript two date time comparision issueJavascript两个日期时间比较问题
【发布时间】:2014-05-02 16:25:59
【问题描述】:

我正在尝试将两个日期与 javascript 进行比较。实际上,如果第一个日期比第二个日期大,但 javascript 无法正常工作,我的目标会收到警告消息。虽然我在 firefox 光标上进行调试,但即使发生条件也会阻止.同时,类似的javascript代码在jsfiddle上也能正常工作。

http://jsfiddle.net/Mjora/ZNaMW/

Javascript 代码

$("#btn").click(function(){
    var firstDate = $('#firstDate').val();
    var lastDate = $('#lastDate').val();

    if (firstDate > lastDate) {
        alert("First date can not be greater than Last date!!");
    }
    else{...} 
});

我也试过这样的代码;

   $("#btn").click(function(){
        var firstDate = $('#firstDate').val();
        var lastDate = $('#lastDate').val();

        if (new Date(firstDate) > new Date(lastDate)) {
            alert("First date can not be greater than Last date!!");
        }
        else{...} 
    });

 /********/

var fDate="10.10.2020";
var lDate="10.10.2010";

var fDateSpl= fDate.Split(".");
var lDateSpl= lDate.Split(".");

var newFDate = new Date(fDateSpl[2], fDateSpl[1], fDateSpl[0]);
var newLDate = new Date(lDateSpl[2], lDateSpl[1], lDateSpl[0]);


if (newFDate > newLDate) {
    alert("First date can not be greater than Last date!!");
}
else{...} 

HTML

<input type="text" id="firstDate"/>
    <br/>
<input type="text" id="lastDate"/>
    <br/>
<input type="button" value="Send" id="btn"/>

【问题讨论】:

  • 字符串比较:if (firstDate &gt; lastDate) { 不是日期...
  • 是的,如果您将其更改为newFDate.getTime() &gt; new LDate.getTime(),它是否有效?

标签: javascript jquery date datetime comparison


【解决方案1】:

使用 Date.parse(firstDate) > Date.parse(lastDate)

$("#btn").click(function(){
    var firstDate = $('#firstDate').val();
    var lastDate = $('#lastDate').val();
    if (Date.parse(firstDate) > Date.parse(lastDate)) {
        alert("First date can not be greater than Last date!!");
    } 
});

Fiddle Link

【讨论】:

  • 我已经按照上面的方法尝试过了,但是 Date.parse() 函数和 getTime() 会返回 NAN。
  • 你能检查你输入日期的格式吗?或者请检查我在小提琴链接中使用的格式
  • 我解决了我的问题。我将日期发送为 10.10.2010。我用斜线更改了点。问题解决了。感谢您的帮助。
【解决方案2】:

您的第一次尝试 if (firstDate &gt; lastDate) { 失败,因为它是字符串比较,而不是日期比较。

而你的另一次尝试因拼写错误而失败

var fDateSpl= fDate.Split(".");
var lDateSpl= lDate.Split(".");

应该是

var fDateSpl= fDate.split(".");
var lDateSpl= lDate.split(".");

改变它,你会看到一个警报

【讨论】:

  • 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多