Javascript 多个日期对象比较未按预期工作

Javascript 多个日期对象比较未按预期工作,javascript,Javascript,试图找出我的日期对象值比较不正确的原因。两个“review full review comment wrap”块都追加了相同的“大于”字符串…我比较dateObjects值的方法正确吗 <div class="review-full-review-single-wrap"> <div class="review-full-stars"> <span class="review-full-timestamp"> &

试图找出我的日期对象值比较不正确的原因。两个“review full review comment wrap”块都追加了相同的“大于”字符串…我比较dateObjects值的方法正确吗

<div class="review-full-review-single-wrap">
    <div class="review-full-stars">
        <span class="review-full-timestamp">
            <time itemprop="datePublished" datetime="2014-07-29T11:25:47-07:00">July 29, 2014</time>
        </span>
    </div>

    <div class="review-full-review-comment-wrap"></div>
    ////*Append LESS THAN*////
</div>

<div class="review-full-review-single-wrap">
    <div class="review-full-stars">
        <span class="review-full-timestamp">
            <time itemprop="datePublished" datetime="2015-05-05T05:50:05-07:00">May 5, 2015</time>
        </span>
    </div>

    <div class="review-full-review-comment-wrap"></div>
    ////*Append GREATER THAN*////
</div>

function runProgram(){

    var elems = document.getElementsByClassName("review-full-timestamp");

    for (var i = 0; i < elems.length; i++) {
        var timeElems = document.getElementsByTagName("time");
        var dateString = Date.parse(timeElems[i].innerHTML);
        var dateObj = new Date(dateString);
        var startDate = "May 6, 2015";
        var startDateObj = new Date(startDate);
    }

    if(dateObj > startDateObj){
        $('.review-full-review-comment-wrap').append('<p>GREATER than</p>');
    } else {
        $('.review-full-review-comment-wrap').append('<p>LESS than</p>');
    }

}
runProgram();

2014年7月29日
////*追加少于*////
2015年5月5日
////*追加大于*////
函数runProgram(){
var elems=document.getElementsByClassName(“查看完整时间戳”);
对于(变量i=0;istartDateObj){
$(“.review full review comment wrap”)。追加(“大于”

”); }否则{ $(“.review full review comment wrap”)。追加(“小于”

”); } } 运行程序();
尝试将
.getTime()
添加到每个日期对象,将日期值推送到数组中,使用
array.prototype.some()
确定解析为
日期
对象的
时间
元素
html
是否大于
startDateObj

函数runProgram(){
var时间=[];
var startDate=“2015年5月6日”;
var startDateObj=新日期(startDate.getTime();
var elems=document.getElementsByClassName(“查看完整时间戳”);
对于(变量i=0;istartDateObj
})) {
$(“.review full review comment wrap”)。追加(“大于”

”); }否则{ $(“.review full review comment wrap”)。追加(“小于”

”); } } 运行程序()

2014年7月29日
////*追加少于*////
2015年5月5日
////*追加大于*////
请参见

根据您的代码考虑以下示例:

var dateString=Date.parse('10-23-2015');
var dateObj=新日期(日期字符串);
var startDate=“2015年5月6日”;
var startDateObj=新日期(startDate);
if(dateObj.getTime()>startDateObj.getTime()){
console.log('cool');

}
基于上面的@Bergi注释:以下是正确的函数

var startDate = new Date( 'May 6, 2015' );
$( '.review-full-review-single-wrap' ).each( function( i, e ) {
    var dateObj = new Date( Date.parse( $( e ).find( '.review-full-timestamp > time' ).attr( 'dateTime' ) ) );
    var div = $( e ).find( '.review-full-review-comment-wrap' );
    if ( dateObj.getTime() >= startDate.getTime() ) {
        div.append( '<p>dateObj is GREATER than startDate</p>' );
    } else {
        div.append( '<p>dateObj is LESS than startDate</p>' );
    }
} );
var startDate=新日期('2015年5月6日');
$('.review full review single wrap')。每个(函数(即,e){
var dateObj=新日期(Date.parse($(e).find('.review full timestamp>time').attr('dateTime'));
var div=$(e).find('.review-full-review-comment-wrap');
如果(dateObj.getTime()>=startDate.getTime()){
div.append(“dateObj大于startDate

”); }否则{ div.append(“dateObj小于startDate

”); } } );
我意识到,在我的第一个“查看完整时间戳”块中,日期大于“startdateObj”值。您是否可以编辑上面的代码,使2014年7月29日而不是2015年7月29日,并查看它是否仍然正确运行?您更新了变量-对日期的编辑应为第一次标记值。。。不是变量date@Jgunzblazin是否需要确定
startDateObj
是否大于
time
元素日期?相反,检查dateObj是否大于startDateObj。但我相信问题不在我在上述Bergi的约会比较中——我需要找出我的loop@Jgunzblazin为了澄清,什么是
startDate
time
elements
html
应该是什么?是,
循环的
不正确。更新后的帖子,虽然希望确认beI应该知道如何输出值的日期,但是添加getTime()函数仍然会产生初始结果,其中“相同”大于字符串被追加到两个块中,而“相同”大于字符串是什么?在程序要追加的if条件下,“大于”字符串被追加到两个块中。我试图修改代码,以便在dateObj值小于startObj值时,将小于字符串追加到块中。。副主席编辑了我的答案,因为我不知道你的意思。示例如预期般工作感谢您的示例确实有效-我认为我没有像上面提到的Bergi那样正确循环您的循环结构被破坏了。您不需要单独处理这两个元素,而是在它们上面循环,从最后一个元素中获取
dateObj
,然后将相同的比较结果附加到所有wrap元素。我认为您需要使用
getDate()getMonth()getYear()
并用这些参数创建一个新的
Date
对象。不管其他人在这里怎么说,请确保
dateObj>startDateObj
表达式工作正常。很高兴您自己能弄明白:-)但是,我认为您希望
而不是
=
,并且您可以很容易地忽略
.getTime()
不管怎样,在比较日期对象时,都会隐式调用它。