{"id":10863,"date":"2021-06-08T14:56:48","date_gmt":"2021-06-08T14:56:48","guid":{"rendered":"https:\/\/www.htmlgoodies.com\/?p=10863"},"modified":"2021-06-08T14:56:48","modified_gmt":"2021-06-08T14:56:48","slug":"luxon-javascript-time-zone-conversion","status":"publish","type":"post","link":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/","title":{"rendered":"Time Zone Conversion with Luxon and JavaScript"},"content":{"rendered":"

Did you know that every time you adjust your clock forward or backward for Daylight Savings Time (assuming your region follows it), you’re performing a Time Zone Conversion? In my case, I’m converting between Eastern Standard Time (EST) and Eastern Daylight Time (EDT). In fact, that’s what Time Zone Conversion is all about: adjusting your clock(s) or watch(es) according to a different time zone. It’s the same process you go through when traveling between time zones. You need to ask yourself, “what time is it now where I am going?”<\/span><\/p>\n

Using Luxon, there are really two ways to go about it: you can either set the date and time to the new time zone or, you can determine the difference between the two time zones and adjust accordingly. While the second option may sound like the more difficult option, in JavaScript, it’s really not. I’ll prove it by taking the demo that we worked on in the\u00a0<\/span>Parsing Dates and Times Using Luxon\u00a0<\/span><\/a>tutorial and modify it to switch between the user’s local time zone and those of listed events, which take place in London, England.<\/span><\/p>\n

Setting the Time on a Luxon DateTime Object<\/span><\/h2>\n

Before switching time zones, it helps if you’ve got time to change! To that end, I’ve added end dates to each event so that we can see both the start and end dates in our local time zone. You can see an example in the image below, along with the button that toggles between local and London time zones:<\/span><\/p>\n

\"JavaScript<\/p>\n

 <\/p>\n

Setting the time is done in two steps:<\/p>\n

    \n
  1. First, the time is parsed using the “h:mm a” time format string.<\/li>\n
  2. Then, the times are combined with the start and end dates via Luxon’s versatile setter.<\/li>\n<\/ol>\n

    Here’s a code snippet that shows how the start and end dates and times are set:<\/p>\n

    var dayFormat    = \"ccc, dd\",\r\n    inputFormat  = dayFormat + \" LLL yyyy\",\r\n    timeFormat   = \"h:mm a\",\r\n    $eventDates  = $('.eventDates'),\r\n    startDates   = new Array($eventDates.length), \r\n    endDates     = new Array($eventDates.length),\r\n    luxon        = luxon.DateTime,\r\n    LONDON_TIMEZONE = 'Europe\/London';\r\n\r\n$eventDates.each(function(index) {\r\n  var $this      = $(this),\r\n      eventTimes = $this.siblings('span').text().split(' - '),\r\n             \/\/ remove extra newlines and spaces in source\r\n      eventDates = $this.text().replace(\/\\n\\s+\/,' ').split(' - '),\r\n      startTime  = luxon.fromString(\r\n                     eventTimes[0].trim(), timeFormat, {zone: LONDON_TIMEZONE}\r\n                   ),\r\n      startDate;\r\n\r\n  \/\/ check if date range\r\n  if (eventDates.length === 1) {\r\n    startDate = eventDates[0];\r\n  } else if (eventDates.length === 2) {\r\n    startDate   = eventDates[1].replace(\/[a-zA-Z]{3}, \\d{2}\/, eventDates[0]);\r\n    var endTime = luxon.fromString(\r\n                    eventTimes[1].trim(), timeFormat, {zone: LONDON_TIMEZONE}\r\n                  );\r\n    \r\n    endDates[index] = \r\n      luxon.fromFormat(eventDates[1], inputFormat, {zone: LONDON_TIMEZONE})\r\n        .set({hour: endTime.hour, minute: endTime.minute});\r\n  }\r\n  startDates[index] = \r\n      luxon.fromFormat(startDate, inputFormat, {zone: LONDON_TIMEZONE})\r\n        .set({hour: startTime.hour, minute: startTime.minute});\r\n});\r\n<\/pre>\n

    Looking at the above code, you’ll notice that we are using the “Europe\/London” time zone. I specifically chose events in the London area, thinking that these would be in UTC. I was mistaken because, like my home province in Ontario, Canada, London observes Daylight Savings Time. Hence, while it is identical to UTC in Winter, London has a GMT offset of +1 during the summertime.<\/span><\/p>\n

    Localizing a Luxon Date<\/span><\/h2>\n

    Having created our dates with the correct “Europe\/London” time zone, we can now switch time zones to our local one. In the button click handler, we can then check the current time zone of each start date:<\/span><\/p>\n

    $('#btnTimezone').click(function() {\r\n  if (startDates[0].zoneName === LONDON_TIMEZONE) {\r\n    $(this).text(\"View Dates in Your Time Zone ('\" + startDates[0].zoneName + \"')\");\r\n    \/\/convert event dates to local time zone...\r\n  } else {\r\n    $(this).text(\"View Dates in Original Time Zone ('\" + startDates[0].zoneName + \"')\");\r\n    \/\/convert event dates to London time zone...\r\n  }\r\n});\r\n<\/pre>\n

    Displaying DateTimes in the Specified Time Zone<\/h2>\n

    Updating the event dates and times on the web page also consists of two steps. They are:<\/span><\/p>\n

      \n
    1. Convert the dates to and from the local and London time zones.<\/span><\/li>\n
    2. Display them in the same format as they were originally parsed.<\/span><\/li>\n<\/ol>\n

      The first step is amazingly easy; local dates and times may be procured via Luxon’s toLocal()<\/em> method, while setZone()<\/em> may be utilized to convert a DateTime<\/em> object to any time zone by passing in the time zone string (‘Europe\/London’ in our case).<\/span><\/p>\n

      As for the second step, it’s not much more difficult because the same format string that we used to parse the dates and times may be reused by toFormat()<\/em>.<\/span><\/p>\n

      In fact, the conversion code is so similar overall that I put it in its own function called toggleTimezone()<\/em>. It accepts two arguments – one mandatory, the other optional. The first argument is the conversion function, aka toLocal()<\/em> or setZone()<\/em>. The second is the time zone string, which is only required when converting to London time. Here’s the complete toggleTimezone()<\/em> code:<\/span><\/p>\n

      function toggleTimezone(conversionFunction, timezone) {\r\n  \/\/ wrap the timezone in an array\r\n  timezone = Array.prototype.slice.call(arguments, 1);\r\n  $eventDates.each(function(index) {\r\n    var $eventDays = $(this),\r\n        startDate  = conversionFunction.apply(startDates[index], timezone),\r\n        $startEndTimes = $eventDays.siblings('span'),\r\n        dateText = '',\r\n        timeText = startDate.toFormat(timeFormat);\r\n\r\n    \/\/update the start date\r\n    startDates[index] = startDate;\r\n\r\n    if(endDates[index]) \r\n      var endDate = conversionFunction.apply(endDates[index], timezone);\r\n      dateText  = startDate.toFormat(dayFormat)\r\n        + \" - \" \r\n        + endDate.toFormat(inputFormat);\r\n      timeText += \" - \" + endDate.toFormat(timeFormat);\r\n      \/\/update the end date\r\n      endDates[index] = endDate;\r\n    } else {\r\n      dateText = startDate.toFormat(inputFormat);\r\n    }\r\n    $eventDays.text(dateText);\r\n    $startEndTimes.text(timeText);\r\n  });\r\n}\r\n<\/pre>\n

      The JavaScript Function apply()<\/em> method is employed to invoke the supplied Luxon conversion function. The timezone<\/em> argument is wrapped in an array using Array slice()<\/em> since apply()<\/em> requires its arguments to be passed as an array.<\/p>\n

      Conclusion<\/h2>\n

      In this tutorial, we enhanced the demo that we worked on in the\u00a0Parsing Dates and Times Using Luxon\u00a0<\/a>tutorial by modifying it to switch between the user’s local time zone and those of listed events, taking place in London, England.<\/p>\n

      You can see the Pen\u00a0Luxon Time Zone Demo<\/a>\u00a0by Rob Gravelle (@blackjacques) on CodePen.<\/p>\n","protected":false},"excerpt":{"rendered":"

      Did you know that every time you adjust your clock forward or backward for Daylight Savings Time (assuming your region follows it), you’re performing a Time Zone Conversion? In my case, I’m converting between Eastern Standard Time (EST) and Eastern Daylight Time (EDT). In fact, that’s what Time Zone Conversion is all about: adjusting your […]<\/p>\n","protected":false},"author":93,"featured_media":10865,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[30620],"tags":[3385,33794],"b2b_audience":[37],"b2b_industry":[65],"b2b_product":[107],"acf":[],"yoast_head":"\nTime Zone Conversion with Luxon JavaScript | HTMLGoodies<\/title>\n<meta name=\"description\" content=\"This JavaScript tutorial for web developers delves into time zone conversions with Luxon. Follow along with our code samples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Time Zone Conversion with Luxon JavaScript | HTMLGoodies\" \/>\n<meta property=\"og:description\" content=\"This JavaScript tutorial for web developers delves into time zone conversions with Luxon. Follow along with our code samples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/\" \/>\n<meta property=\"og:site_name\" content=\"HTML Goodies\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-08T14:56:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/06\/clocks.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"958\" \/>\n\t<meta property=\"og:image:height\" content=\"467\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@htmlgoodies\" \/>\n<meta name=\"twitter:site\" content=\"@htmlgoodies\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Robert Gravelle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#organization\",\"name\":\"HTML Goodies\",\"url\":\"https:\/\/www.htmlgoodies.com\/\",\"sameAs\":[\"https:\/\/twitter.com\/htmlgoodies\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/03\/HTMLg_weblogo_MobileLogo.png\",\"contentUrl\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/03\/HTMLg_weblogo_MobileLogo.png\",\"width\":584,\"height\":136,\"caption\":\"HTML Goodies\"},\"image\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#website\",\"url\":\"https:\/\/www.htmlgoodies.com\/\",\"name\":\"HTML Goodies\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.htmlgoodies.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#primaryimage\",\"url\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/06\/clocks.jpg\",\"contentUrl\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/06\/clocks.jpg\",\"width\":958,\"height\":467,\"caption\":\"Time Zone Conversion\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#webpage\",\"url\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/\",\"name\":\"Time Zone Conversion with Luxon JavaScript | HTMLGoodies\",\"isPartOf\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#primaryimage\"},\"datePublished\":\"2021-06-08T14:56:48+00:00\",\"dateModified\":\"2021-06-08T14:56:48+00:00\",\"description\":\"This JavaScript tutorial for web developers delves into time zone conversions with Luxon. Follow along with our code samples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.htmlgoodies.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Time Zone Conversion with Luxon and JavaScript\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/3083c944b199776249ea1a0be5b1a74f\"},\"headline\":\"Time Zone Conversion with Luxon and JavaScript\",\"datePublished\":\"2021-06-08T14:56:48+00:00\",\"dateModified\":\"2021-06-08T14:56:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#webpage\"},\"wordCount\":695,\"publisher\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/06\/clocks.jpg\",\"keywords\":[\"JavaScript\",\"Luxon\"],\"articleSection\":[\"Javascript\"],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/3083c944b199776249ea1a0be5b1a74f\",\"name\":\"Robert Gravelle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/05\/rob-gravelle-150x150.jpg\",\"contentUrl\":\"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/05\/rob-gravelle-150x150.jpg\",\"caption\":\"Robert Gravelle\"},\"description\":\"Rob Gravelle resides in Ottawa, Canada, and has been an IT guru for over 20 years. In that time, Rob has built systems for intelligence-related organizations such as Canada Border Services and various commercial businesses. In his spare time, Rob has become an accomplished music artist with several CDs and digital releases to his credit.\",\"url\":\"https:\/\/www.htmlgoodies.com\/author\/robert-gravelle\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Time Zone Conversion with Luxon JavaScript | HTMLGoodies","description":"This JavaScript tutorial for web developers delves into time zone conversions with Luxon. Follow along with our code samples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/","og_locale":"en_US","og_type":"article","og_title":"Time Zone Conversion with Luxon JavaScript | HTMLGoodies","og_description":"This JavaScript tutorial for web developers delves into time zone conversions with Luxon. Follow along with our code samples.","og_url":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/","og_site_name":"HTML Goodies","article_published_time":"2021-06-08T14:56:48+00:00","og_image":[{"width":958,"height":467,"url":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/06\/clocks.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_creator":"@htmlgoodies","twitter_site":"@htmlgoodies","twitter_misc":{"Written by":"Robert Gravelle","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.htmlgoodies.com\/#organization","name":"HTML Goodies","url":"https:\/\/www.htmlgoodies.com\/","sameAs":["https:\/\/twitter.com\/htmlgoodies"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/03\/HTMLg_weblogo_MobileLogo.png","contentUrl":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/03\/HTMLg_weblogo_MobileLogo.png","width":584,"height":136,"caption":"HTML Goodies"},"image":{"@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/www.htmlgoodies.com\/#website","url":"https:\/\/www.htmlgoodies.com\/","name":"HTML Goodies","description":"","publisher":{"@id":"https:\/\/www.htmlgoodies.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.htmlgoodies.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#primaryimage","url":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/06\/clocks.jpg","contentUrl":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/06\/clocks.jpg","width":958,"height":467,"caption":"Time Zone Conversion"},{"@type":"WebPage","@id":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#webpage","url":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/","name":"Time Zone Conversion with Luxon JavaScript | HTMLGoodies","isPartOf":{"@id":"https:\/\/www.htmlgoodies.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#primaryimage"},"datePublished":"2021-06-08T14:56:48+00:00","dateModified":"2021-06-08T14:56:48+00:00","description":"This JavaScript tutorial for web developers delves into time zone conversions with Luxon. Follow along with our code samples.","breadcrumb":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.htmlgoodies.com\/"},{"@type":"ListItem","position":2,"name":"Time Zone Conversion with Luxon and JavaScript"}]},{"@type":"Article","@id":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#article","isPartOf":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#webpage"},"author":{"@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/3083c944b199776249ea1a0be5b1a74f"},"headline":"Time Zone Conversion with Luxon and JavaScript","datePublished":"2021-06-08T14:56:48+00:00","dateModified":"2021-06-08T14:56:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#webpage"},"wordCount":695,"publisher":{"@id":"https:\/\/www.htmlgoodies.com\/#organization"},"image":{"@id":"https:\/\/www.htmlgoodies.com\/javascript\/luxon-javascript-time-zone-conversion\/#primaryimage"},"thumbnailUrl":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/06\/clocks.jpg","keywords":["JavaScript","Luxon"],"articleSection":["Javascript"],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/3083c944b199776249ea1a0be5b1a74f","name":"Robert Gravelle","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.htmlgoodies.com\/#\/schema\/person\/image\/","url":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/05\/rob-gravelle-150x150.jpg","contentUrl":"https:\/\/www.htmlgoodies.com\/wp-content\/uploads\/2021\/05\/rob-gravelle-150x150.jpg","caption":"Robert Gravelle"},"description":"Rob Gravelle resides in Ottawa, Canada, and has been an IT guru for over 20 years. In that time, Rob has built systems for intelligence-related organizations such as Canada Border Services and various commercial businesses. In his spare time, Rob has become an accomplished music artist with several CDs and digital releases to his credit.","url":"https:\/\/www.htmlgoodies.com\/author\/robert-gravelle\/"}]}},"_links":{"self":[{"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/posts\/10863"}],"collection":[{"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/users\/93"}],"replies":[{"embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/comments?post=10863"}],"version-history":[{"count":0,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/posts\/10863\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/media\/10865"}],"wp:attachment":[{"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/media?parent=10863"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/categories?post=10863"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/tags?post=10863"},{"taxonomy":"b2b_audience","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/b2b_audience?post=10863"},{"taxonomy":"b2b_industry","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/b2b_industry?post=10863"},{"taxonomy":"b2b_product","embeddable":true,"href":"https:\/\/www.htmlgoodies.com\/wp-json\/wp\/v2\/b2b_product?post=10863"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}