[Special Summer Sale] 40% OFF All Magento 2 Themes

Cart

Date comparison Logic / in Liquid Template Filter

  • This topic is empty.
Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #9584
    bradly-spicer
    Participant

    I’m attempting to create a “Pre-Order” Like mechanic where certain elements of my Shopify Liquid Template only show if the current date is more or less than the date specified in a Metafield.

    As of current this is what I have including logic:

    <!-- Check Today is correct -->
    <p>Today: {{'now' | date: '%d-%m-%Y' }}</p>
    
    <!-- This is the Metafield Output as a String -->
    <p>Release Date: {{ product.metafields.Release-Date.preOrder }}</p>
    
    <!-- Assign Variable "today_date" to the current date -->
    {% assign today_date = 'now' | date: '%d-%m-%Y' %}
    <!-- Assign Variable "pre_date" to the string of the metafield -->
    {% assign pre_date = product.metafields.Release-Date.preOrder %}
    {% if today_date > pre_date %}
      Today's date is greater than PreOrder Date
    {% else %}
      Today's date is not greater than PreOrder Date
    {% endif %}
    

    However, even when I set the PreOrder date to 01-01-2018 it still shows the “Is greater than”.

    How do I correctly query this?

    #9585
    drip
    Participant

    You can’t compare strings this way. (The dates are strings.)

    You have to use the %s date filter instead.

    So it will become:

    {% assign today_date = 'now' | date: '%s' %}
    {% assign pre_date = product.metafields.Release-Date.preOrder | date: '%s' %}
    {% if today_date > pre_date %}
    

    We use %s because it will return the current unix timestamp number instead of a string. This way you will be able to compare the different timestamps.

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.