Support » Plugin: amr users » Trying to convert Unix timestamp date format to standard date – errors

  • Resolved dshank

    (@dshank)


    I have been using AMR Users for years, and it’s done a good job so far. As our reports/tables get more complicated, we have added many columns with dates, but our dates are stored in unix timestamp format. So purchased the Plus version of the plugin today, and am trying to configure the dates but it’s not working.

    I’ve tried a variety of field configuration options, but one of two things happens:

    I see this error above my list:
    Message to admin only: Fatal error caught – Unable to create DateTime object from this string: “1551341956” with timezone 1Please check the content of your date fields, and any fields where you have specified a date format

    DateTime::__construct(): Failed to parse time string (1605222337) at position 7 (3): Unexpected character

    OR

    All the dates are properly formatted but all read today’s date (which is incorrect).

    What could be happening here?

    Thanks.

Viewing 9 replies - 1 through 9 (of 9 total)
  • Plugin Author anmari

    (@anmari)

    Please check your general timezone settings at ….wp-admin/options-general.php

    Please set a city timezone if not set.

    Thread Starter dshank

    (@dshank)

    Thank you, I had the timezone set to UTC -7 (offset). I set it to a city to see if that would change anything, but there was no change.

    I can get things to work without error if I set the “field type” on the “Fields & Nice Names” to either of the two (ISO) date types and the “format” on the “configure a list” page to “Date (translateable)”. However, when I view my list, the UNIX timestamp dates are all set to the same date (today’s). So something is still incorrect.

    Thanks.

    Plugin Author anmari

    (@anmari)

    FieldType must be Unix timestamp if that is what is in the data.

    I’ve played around and cannot recreate the behaviour you are seeing.

    Without the plus addon, one should be able to say it is a unix timestamp and then format as ‘date translateable’. Adding the ‘plus’ addon into the mix should not have changed that. It would provide more format options. It sounds like the system is not getting a good timezone or the data fields are corrupt?

    That first error message should have dumped a whole timezone object, not just a ‘1’, so that’s weird.

    These s2member date time fields here https://s2m.wpusersplugin.com/
    are all unixtimestamps formatted in various ways.

    So that makes me think maybe it is something else .

    Please go to …wp-admin/admin.php?page=amr-users&tab=userdb and paste the info from there. In particular your php version as per wordpress should be 7.4 or higher https://wordpress.org/support/article/requirements/

    You could also explore the data whether some records are corrupted? Force a timezone update again, If the message is not happening for all users, try excluding the users with the data that causes the problem or force a data update on those fields to see if that fixes it.

    The ‘Failed to parse time string’ was presumably when you had the field type NOT set to unix timestamp – system then complaining that it is NOT a date format accepted by php.

    Please let me know how you go.

    • This reply was modified 1 month, 1 week ago by anmari.
    Plugin Author anmari

    (@anmari)

    RE your error messages above. We need to get just the errors and ALL the error for one user for a fieldtype Unix time stamp and format date translateable.

    I see now that the ‘1’ meant that there would have been a dump of the tiemzone object ABOVE that error message instead of where the ‘1’ was. I’ll fix that in next update going up soon. BUT that is just how the error message is being output, doesn’t help to understand WHY a date creation from timestamp is failing.

    Thread Starter dshank

    (@dshank)

    Thanks for the reply and all the feedback. Looks like just changing field type to “Datetime Unix Timestamp” fixed the problem and it’s working properly. I’m sorry to complicate matters – didn’t realize that the field type shoudl be set to the current type of data!

    I disabled the plus addon and it works fine, so I guess I didn’t need to upgrade. What other advanced date formatting should I be able to do with plus?

    One more question comes to mind. Does the plugin support any way to add a field whereby I could calculate the delta between two date fields?

    Again, many thanks for the prompt and thorough support.

    Plugin Author anmari

    (@anmari)

    Glad to hear there was no problem, and yes if you say the field contains values that it doesn’t then when it tries to format the field, it won’t be happy. Worse here because if expecting an ‘ambiguous date’, php tries it’s best to make a date from the text.

    You can see other date format options (as well as additional format options for other fields) in the format dropdown after telling the plugin what type of field a field is. In some cases, it will know already especially if using a third party addon.

    Some additional format examples:
    https://bp.wpusersplugin.com/user-list-3/
    https://bp.wpusersplugin.com/user-list-files-urls/
    https://bp.wpusersplugin.com/user-list-table/

    Re date delta:
    if one of the dates is ‘now’ then there is already ‘ago’, or ‘age’
    if want delta between 2 fields, it could be done with a custom addon – create a fake field which holds the delta.

    Thread Starter dshank

    (@dshank)

    Thank you. I don’t think I fully understand what you mean about the date delta.

    by “custom addon” do you mean within the amr-users plugin? how would I create the fake field and set up the calculation (i.e. specifying which fields the delta is based on)?

    Plugin Author anmari

    (@anmari)

    Re date delta, please describe your intended use.

    The ‘ago’ and ‘age’ formats for a date field will calculate and display the difference (the delta) between ‘now’ – the date & time that the list is being displayed and the date& time in the field value.

    RE custom addon. To do this successfully you need to have programming skills and some knowledge of wp filters.
    See https://wpusersplugin.com/3284/example-site-specific-add-on-using-filters/ and and https://wpusersplugin.com/2940/filters/
    Use filter amr_get_fields – ($keys) and a pluggable function
    and pluggable function amr_users_format_value – ( $text, $fieldname, $originalvalue, $user)

    Thread Starter dshank

    (@dshank)

    Great, thanks for the explanation!

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