CMS Development

benji_thecroc
Contributeur | Partenaire solutions Gold
Contributeur | Partenaire solutions Gold

Convert basic date string to dateobject (no time in string)

Résolue

Hi,

 

I'm have an issue. We have event posts that have basic single line text field. In that the content publisher is putting in the date like so (d-m-Y e.g. 03-09-2019).

 

I've tried to use strtotime to convert this string into a dateobject which I can then use to convert into reading somethign like 3 Sept 19.

 

I think the issue is strtotime doesn't like that there's not time e.g.

 

{% set edate = post.widgets.event_date.body.value|strtotime('d/m/Y') %}

<p>{{ edate|datetimeformat('%e') }}</p>
0 Votes
1 Solution acceptée
Kevin-C
Solution
Expert reconnu | Partenaire solutions
Expert reconnu | Partenaire solutions

Convert basic date string to dateobject (no time in string)

Résolue

Hey @benji_thecroc 

 

As with most of my post(lol)…I'm no expert, but I gave it a shot!

 

It looks like your "strtotime" arguments are formated incorrectly.

 

As per the docs your year should be labeled as "yyyy", month as "MM", and day as "dd". All separated by "-". The user's input should be formated in this way as well.

|strtotime("yyyy-MM-dd'T'HH:mm:ssZ")|unixtimestamp

It is also missing the time stamp which unfortunately is require. You could append a generic timestamp dynamically if it is not needed on your end.

 

Maybe something like this?

 

{# adding a generic timestamp #}
{% set inputDate = post.widgets.event_date.body.value~"T00:00:00+0000" %} 

{# declare edate #}
{% set edate = inputDate|strtotime("yyyy-MM-dd'T'HH:mm:ssZ")|unixtimestamp %} 

{# print value #}
<p>{{ edate|datetimeformat('%e') }}</p>

 

 

I hope this helps!

 

Kevin Cornett - Sr. Solutions Architect @ BridgeRev

Voir la solution dans l'envoi d'origine

0 Votes
1 Réponse
Kevin-C
Solution
Expert reconnu | Partenaire solutions
Expert reconnu | Partenaire solutions

Convert basic date string to dateobject (no time in string)

Résolue

Hey @benji_thecroc 

 

As with most of my post(lol)…I'm no expert, but I gave it a shot!

 

It looks like your "strtotime" arguments are formated incorrectly.

 

As per the docs your year should be labeled as "yyyy", month as "MM", and day as "dd". All separated by "-". The user's input should be formated in this way as well.

|strtotime("yyyy-MM-dd'T'HH:mm:ssZ")|unixtimestamp

It is also missing the time stamp which unfortunately is require. You could append a generic timestamp dynamically if it is not needed on your end.

 

Maybe something like this?

 

{# adding a generic timestamp #}
{% set inputDate = post.widgets.event_date.body.value~"T00:00:00+0000" %} 

{# declare edate #}
{% set edate = inputDate|strtotime("yyyy-MM-dd'T'HH:mm:ssZ")|unixtimestamp %} 

{# print value #}
<p>{{ edate|datetimeformat('%e') }}</p>

 

 

I hope this helps!

 

Kevin Cornett - Sr. Solutions Architect @ BridgeRev
0 Votes