Comparing dates not working for different years but working fine for same year











up vote
-3
down vote

favorite












I want to compare the following dates with different years and saving status:



@date = DateTime.now.strftime("%d-%b-%Y")
@valid_to_date = @new_certificate.valid_to.strftime("%d-%b-%Y")
if @valid_to_date == @date
@new_certificate.update_attributes(status: 1)
elsif @valid_to_date > @date
@new_certificate.update_attributes(status: 2)
elsif @valid_to_date < @date
@new_certificate.update_attributes(status: 3)
else
end


It's working fine for the same years, but for different years, it is not working. Please help me to solve this.










share|improve this question




























    up vote
    -3
    down vote

    favorite












    I want to compare the following dates with different years and saving status:



    @date = DateTime.now.strftime("%d-%b-%Y")
    @valid_to_date = @new_certificate.valid_to.strftime("%d-%b-%Y")
    if @valid_to_date == @date
    @new_certificate.update_attributes(status: 1)
    elsif @valid_to_date > @date
    @new_certificate.update_attributes(status: 2)
    elsif @valid_to_date < @date
    @new_certificate.update_attributes(status: 3)
    else
    end


    It's working fine for the same years, but for different years, it is not working. Please help me to solve this.










    share|improve this question


























      up vote
      -3
      down vote

      favorite









      up vote
      -3
      down vote

      favorite











      I want to compare the following dates with different years and saving status:



      @date = DateTime.now.strftime("%d-%b-%Y")
      @valid_to_date = @new_certificate.valid_to.strftime("%d-%b-%Y")
      if @valid_to_date == @date
      @new_certificate.update_attributes(status: 1)
      elsif @valid_to_date > @date
      @new_certificate.update_attributes(status: 2)
      elsif @valid_to_date < @date
      @new_certificate.update_attributes(status: 3)
      else
      end


      It's working fine for the same years, but for different years, it is not working. Please help me to solve this.










      share|improve this question















      I want to compare the following dates with different years and saving status:



      @date = DateTime.now.strftime("%d-%b-%Y")
      @valid_to_date = @new_certificate.valid_to.strftime("%d-%b-%Y")
      if @valid_to_date == @date
      @new_certificate.update_attributes(status: 1)
      elsif @valid_to_date > @date
      @new_certificate.update_attributes(status: 2)
      elsif @valid_to_date < @date
      @new_certificate.update_attributes(status: 3)
      else
      end


      It's working fine for the same years, but for different years, it is not working. Please help me to solve this.







      ruby ruby-on-rails-5






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 9 at 11:12









      sawa

      128k27193297




      128k27193297










      asked Nov 9 at 10:57









      Mohammed Riyaz

      15




      15
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          1
          down vote













          If you want to compare dates as dates, and not as the specific string format that you wrote, then compare them as dates:



          @date = Date.today
          @valid_to_date = @new_certificate.valid_to.to_date


          Even if you chose to compare the dates as strings, the comparison goes from the left to right (unless you are using a language like Arabic), so your string format will obviously not work. You also would need padding by zero in appropriate places.






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53224401%2fcomparing-dates-not-working-for-different-years-but-working-fine-for-same-year%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            1
            down vote













            If you want to compare dates as dates, and not as the specific string format that you wrote, then compare them as dates:



            @date = Date.today
            @valid_to_date = @new_certificate.valid_to.to_date


            Even if you chose to compare the dates as strings, the comparison goes from the left to right (unless you are using a language like Arabic), so your string format will obviously not work. You also would need padding by zero in appropriate places.






            share|improve this answer



























              up vote
              1
              down vote













              If you want to compare dates as dates, and not as the specific string format that you wrote, then compare them as dates:



              @date = Date.today
              @valid_to_date = @new_certificate.valid_to.to_date


              Even if you chose to compare the dates as strings, the comparison goes from the left to right (unless you are using a language like Arabic), so your string format will obviously not work. You also would need padding by zero in appropriate places.






              share|improve this answer

























                up vote
                1
                down vote










                up vote
                1
                down vote









                If you want to compare dates as dates, and not as the specific string format that you wrote, then compare them as dates:



                @date = Date.today
                @valid_to_date = @new_certificate.valid_to.to_date


                Even if you chose to compare the dates as strings, the comparison goes from the left to right (unless you are using a language like Arabic), so your string format will obviously not work. You also would need padding by zero in appropriate places.






                share|improve this answer














                If you want to compare dates as dates, and not as the specific string format that you wrote, then compare them as dates:



                @date = Date.today
                @valid_to_date = @new_certificate.valid_to.to_date


                Even if you chose to compare the dates as strings, the comparison goes from the left to right (unless you are using a language like Arabic), so your string format will obviously not work. You also would need padding by zero in appropriate places.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 9 at 11:23

























                answered Nov 9 at 11:16









                sawa

                128k27193297




                128k27193297






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53224401%2fcomparing-dates-not-working-for-different-years-but-working-fine-for-same-year%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Landwehr

                    Reims

                    Schenkenzell