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 yesterday









      sawa

      128k27191296




      128k27191296










      asked yesterday









      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






























            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 yesterday

























                answered yesterday









                sawa

                128k27191296




                128k27191296



























                     

                    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














































































                    Popular posts from this blog

                    How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

                    Syphilis

                    Darth Vader #20