DEV Community

David Carr
David Carr

Posted on • Originally published at dcblog.dev on

Format Xero dates from the API

Dates in Xero that are not already set to a datestring are in a format like Date(1518685950940+0000)

How to format these

They are made up from unix timestamps in milliseconds rather than seconds, they need to be converted by taking the timestamp and times by 1,000


date("Y-m-d", 1518685950940 / 1000)
Enter fullscreen mode Exit fullscreen mode

This will give you the formatted date.

When doing this over the API dynamically you can do this:


if (isset($inv['FullyPaidOnDate'])) {
    $date = str_replace('/Date(', '', $inv['FullyPaidOnDate']);
    $parts = explode('+', $date);
    $paidAt = date("Y-m-d", $parts[0] / 1000);
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)