{"id":207353,"date":"2025-07-08T11:46:56","date_gmt":"2025-07-08T03:46:56","guid":{"rendered":"https:\/\/server.hk\/cnblog\/207353\/"},"modified":"2025-07-08T11:46:56","modified_gmt":"2025-07-08T03:46:56","slug":"%e8%ae%a1%e7%ae%97%e8%b7%b3%e8%bf%87%e5%81%87%e6%9c%9f%e5%92%8c%e5%91%a8%e6%9c%ab%e7%9a%84%e5%b7%a5%e4%bd%9c%e6%97%a5","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/207353\/","title":{"rendered":"\u8ba1\u7b97\u8df3\u8fc7\u5047\u671f\u548c\u5468\u672b\u7684\u5de5\u4f5c\u65e5"},"content":{"rendered":"<p><b><\/b> <\/p>\n<p>\u5f53\u524d\u4f4d\u7f6e\uff1a <span>&gt;<\/span> <span>&gt;<\/span> <span>&gt;<\/span> <span>&gt;<\/span> <span>\u8ba1\u7b97\u8df3\u8fc7\u5047\u671f\u548c\u5468\u672b\u7684\u5de5\u4f5c\u65e5<\/span><\/p>\n<p><span>\u6765\u6e90\uff1astackoverflow<\/span><br \/>\n<span>2024-04-21 21:51:33<\/span><br \/>\n<span><i><\/i>0\u6d4f\u89c8<\/span><br \/>\n<span style=\"cursor: pointer\"><i><\/i>\u6536\u85cf<\/span> <\/p>\n<p>\u6700\u8fd1\u53d1\u73b0\u4e0d\u5c11\u5c0f\u4f19\u4f34\u90fd\u5bf9<span style=\"color: #FF6600;, Helvetica, Arial, sans-serif;font-size: 14px;background-color: #FFFFFF\">Golang<\/span>\u5f88\u611f\u5174\u8da3\uff0c\u6240\u4ee5\u4eca\u5929\u7ee7\u7eed\u7ed9\u5927\u5bb6\u4ecb\u7ecd<span style=\"color: #FF6600;, Helvetica, Arial, sans-serif;font-size: 14px;background-color: #FFFFFF\">Golang<\/span>\u76f8\u5173\u7684\u77e5\u8bc6\uff0c\u672c\u6587<span style=\"color: #FF6600;, Helvetica, Arial, sans-serif;font-size: 14px;background-color: #FFFFFF\">\u300a\u8ba1\u7b97\u8df3\u8fc7\u5047\u671f\u548c\u5468\u672b\u7684\u5de5\u4f5c\u65e5\u300b<\/span>\u4e3b\u8981\u5185\u5bb9\u6d89\u53ca\u5230<span style=\"color: #FF6600;, Helvetica, Arial, sans-serif;font-size: 14px;background-color: #FFFFFF\"><\/span>\u7b49\u7b49\u77e5\u8bc6\u70b9\uff0c\u5e0c\u671b\u80fd\u5e2e\u5230\u4f60\uff01\u5f53\u7136\u5982\u679c\u9605\u8bfb\u672c\u6587\u65f6\u5b58\u5728\u4e0d\u540c\u60f3\u6cd5\uff0c\u53ef\u4ee5\u5728\u8bc4\u8bba\u4e2d\u8868\u8fbe\uff0c\u4f46\u662f\u8bf7\u52ff\u4f7f\u7528\u8fc7\u6fc0\u7684\u63aa\u8f9e~<\/p>\n<p> \u95ee\u9898\u5185\u5bb9<br \/>\n <\/p>\n<p>\u6211\u6709\u8fd9\u4e2a\u95ee\u9898\uff0c\u6d41\u7a0b\u4ece\u4e00\u4e2a\u521d\u59cb\u65e5\u671f\u5f00\u59cb\uff0c\u6bd4\u5982\u8bf4 2022-04-14\uff0c\u6211\u5fc5\u987b\u5728\u8fd9\u4e2a\u65e5\u671f\u4e0a\u6dfb\u52a0\u5341\u5929\uff0c\u4f46\u6211\u5fc5\u987b\u8003\u8651\u5468\u672b\u548c\u5047\u671f\uff0c\u6240\u4ee5\u4e5f\u8bb8\u5728\u521d\u59cb\u65e5\u671f\u4e4b\u95f4\u6700\u7ec8\u65e5\u671f\u6211\u4eec\u6709\u4e00\u4e2a\u5468\u672b\u548c\u4e00\u4e2a\u5047\u671f\uff0c\u6700\u7ec8\u65e5\u671f\u5c06\u662f 2022 \u5e74 4 \u6708 27 \u65e5\u3002\u8fd8\u5fc5\u987b\u8003\u8651\u521d\u59cb\u65e5\u671f\u662f\u5426\u4ece\u5468\u672b\u6216\u8282\u5047\u65e5\u5f00\u59cb\u3002<\/p>\n<p> \u8fd9\u5c31\u662f\u95ee\u9898\u6240\u5728\u3002<\/p>\n<p>\u6211\u7684\u7b2c\u4e00\u4e2a\u65b9\u6cd5\u662f\u521b\u5efa\u4e00\u4e2a\u5faa\u73af\uff0c\u5728\u6700\u521d\u7684\u4e00\u5929\u52a0\u4e0a\u5341\u5929\u4e4b\u95f4\u4ee5\u53ca\u6bcf\u4e2a\u5468\u516d\u3001\u5468\u65e5\u548c\u8282\u5047\u65e5\u603b\u548c\u4e00\u5929\u4e4b\u95f4\u68c0\u67e5\u6bcf\u5929\uff0c\u6240\u4ee5\u6211\u5c06\u6709\u5341\u5929\u52a0\u4e09\u5929\uff0c\u8fd9\u4e2a\u7ed3\u679c\u5c06\u6dfb\u52a0\u5230\u6211\u7684\u521d\u59cb\u65e5\u671f\u6700\u7ec8\u8ba1\u7b97\u51fa\u6700\u7ec8\u65e5\u671f\u3002<\/p>\n<p>\u6211\u7684\u95ee\u9898\u662f\uff0c\u662f\u5426\u6709\u5176\u4ed6\u89e3\u51b3\u65b9\u6848\u6216\u5b9e\u73b0\u53ef\u4ee5\u66f4\u6709\u6548\uff1f\u56e0\u4e3a\u8fd9\u4e5f\u8bb8\u5c06\u6765\u4f1a\u88ab\u5f88\u591a\u4eba\u4f7f\u7528\u3002<\/p>\n<p> <\/p>\n<h2>\u6b63\u786e\u7b54\u6848<\/h2>\n<p> <\/p>\n<p>\u53e6\u5916\uff0c\u4e0d\u8981\u5fd8\u8bb0\u5728\u6dfb\u52a0\u7d2f\u79ef\u7684\u989d\u5916\u5929\u6570\uff08\u5468\u672b\u548c\u8282\u5047\u65e5\uff09\u65f6\uff0c\u8fd9\u4e9b\u5929\u6570\u53ef\u80fd\u4f1a\u6db5\u76d6\u65b0\u7684\u5468\u672b\u548c\u8282\u5047\u65e5\uff0c\u56e0\u6b64\u60a8\u5fc5\u987b\u201c\u9012\u5f52\u201d\u6267\u884c\u6b64\u64cd\u4f5c\u3002<\/p>\n<h2>\u6700\u7b80\u5355\u7684\u89e3\u51b3\u65b9\u6848<\/h2>\n<p>\u6700\u7b80\u5355\u7684\u89e3\u51b3\u65b9\u6848\u53ef\u4ee5\u4ece\u521d\u59cb\u65e5\u671f\u5f00\u59cb\uff0c\u589e\u52a0\u4e00\u5929\uff0c\u7136\u540e\u68c0\u67e5\u6bcf\u4e2a\u65e5\u671f\u662f\u5426\u662f\u53ef\u8df3\u8fc7\u7684\uff08\u5468\u672b\u6216\u5047\u671f\uff09\u65e5\u3002\u5982\u679c\u6ca1\u6709\uff0c\u8bf7\u51cf\u5c11\u5929\u6570\uff0c\u7136\u540e\u91cd\u590d\uff0c\u76f4\u5230\u6dfb\u52a0\u6240\u9700\u7684\u5929\u6570\u3002<\/p>\n<p>\u5b83\u53ef\u80fd\u662f\u8fd9\u6837\u7684\uff1a<\/p>\n<pre>func adddays(start time.time, days int) (end time.time) {\n    for end = start; days &gt; 0; {\n        end = end.adddate(0, 0, 1)\n        if !skippable(end) {\n            days--\n        }\n    }\n    return end\n}\n\nfunc skippable(day time.time) bool {\n    if wd := day.weekday(); wd == time.saturday || wd == time.sunday {\n        return true\n    }\n    if isholiday(day) {\n        return true\n    }\n    return false\n}\n\nfunc isholiday(day time.time) bool {\n    return false \/\/ todo\n}<\/pre>\n<p>\u6d4b\u8bd5\u5b83\uff1a<\/p>\n<pre>d := time.date(2022, time.april, 14, 0, 0, 0, 0, time.utc)\nfmt.println(adddays(d, 0))\nfmt.println(adddays(d, 1))\nfmt.println(adddays(d, 10))<\/pre>\n<p>\u54ea\u4e2a\u8f93\u51fa\uff08\u5728 \u4e0a\u5c1d\u8bd5\u4e00\u4e0b\uff09\uff1a<\/p>\n<pre>2022-04-14 00:00:00 +0000 utc\n2022-04-15 00:00:00 +0000 utc\n2022-04-28 00:00:00 +0000 utc<\/pre>\n<h2>\u66f4\u5feb\u7684\u89e3\u51b3\u65b9\u6848<\/h2>\n<p>\u66f4\u5feb\u7684\u89e3\u51b3\u65b9\u6848\u53ef\u4ee5\u907f\u514d\u65e5\u590d\u4e00\u65e5\u7684\u5faa\u73af\u3002<\/p>\n<p><strong>\u8ba1\u7b97\u5468\u672b\u5929\u6570<\/strong>\uff1a\u77e5\u9053\u521d\u59cb\u65e5\u671f\u662f\u54ea\u4e00\u5929\uff0c\u5e76\u77e5\u9053\u60a8\u60f3\u8981\u6b65\u8fdb\u591a\u5c11\u5929\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u8ba1\u7b97\u5176\u95f4\u7684\u5468\u672b\u5929\u6570\u3002\u4f8b\u5982\u3002\u5982\u679c\u6211\u4eec\u5fc5\u987b\u6b65\u8fdb 14 \u5929\uff0c\u90a3\u5c31\u662f\u6574\u6574 2 \u5468\uff0c\u5176\u4e2d\u80af\u5b9a\u5305\u62ec 4 \u4e2a\u5468\u672b\u3002\u5982\u679c\u6211\u4eec\u5fc5\u987b\u591a\u8d70\u4e00\u6b65\uff0c\u4f8b\u598216 \u5929\uff0c\u5176\u4e2d\u8fd8\u5305\u62ec 2 \u4e2a\u6574\u5468\uff084 \u4e2a\u5468\u672b\uff09\uff0c\u4ee5\u53ca\u53ef\u9009\u7684 1 \u6216 2 \u5929\uff0c\u6211\u4eec\u53ef\u4ee5\u8f7b\u677e\u68c0\u67e5\u3002<\/p>\n<p><strong>\u8ba1\u7b97\u5047\u671f\uff1a<\/strong>\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528\u4e00\u4e2a\u6280\u5de7\u6765\u5728\u6392\u5e8f\u5207\u7247\u4e2d\u5217\u51fa\u5047\u671f\uff08\u6309\u65e5\u671f\u6392\u5e8f\uff09\uff0c\u8fd9\u6837\u6211\u4eec\u5c31\u53ef\u4ee5\u8f7b\u677e\/\u5feb\u901f\u5730\u627e\u5230\u4e24\u4e2a\u65e5\u671f\u4e4b\u95f4\u7684\u5929\u6570\u3002\u6211\u4eec\u53ef\u4ee5\u5728\u6392\u5e8f\u5207\u7247\u4e2d\u4e8c\u5206\u67e5\u627e\u67d0\u4e2a\u65f6\u95f4\u6bb5\u7684\u5f00\u59cb\u65e5\u671f\u548c\u7ed3\u675f\u65e5\u671f\uff0c\u800c\u4e00\u4e2a\u65f6\u95f4\u6bb5\u4e2d\u7684\u5047\u671f\u6570\u5c31\u662f\u8fd9\u4e24\u4e2a\u7d22\u5f15\u4e4b\u95f4\u7684\u5143\u7d20\u6570\u91cf\u3002\u6ce8\u610f\uff1a\u5468\u672b\u5047\u671f\u4e0d\u5f97\u5305\u542b\u5728\u6b64\u5207\u7247\u4e2d\uff08\u5426\u5219\u5c06\u88ab\u8ba1\u7b97\u4e24\u6b21\uff09\u3002<\/p>\n<p>\u8ba9\u6211\u4eec\u770b\u770b\u8fd9\u4e2a\u5b9e\u73b0\u662f\u600e\u6837\u7684\uff1a<\/p>\n<pre>\/\/ holidays is a sorted list of holidays\nvar holidays = []time.time{\n    time.date(2022, time.april, 15, 0, 0, 0, 0, time.utc),\n}\n\nfunc adddaysfast(start time.time, days int) (end time.time) {\n    weekenddays := days \/ 7 * 2 \/\/ full weeks\n    \/\/ account for weekends if there's fraction week:\n    for day, fraction := start.adddate(0, 0, 1), days%7; fraction &gt; 0; day, fraction = day.adddate(0, 0, 1), fraction-1 {\n        if wd := day.weekday(); wd == time.saturday || wd == time.sunday {\n            weekenddays++\n        }\n    }\n\n    end = start.adddate(0, 0, days+weekenddays)\n\n    first := sort.search(len(holidays), func(i int) bool {\n        return !holidays[i].before(start)\n    })\n    last := sort.search(len(holidays), func(i int) bool {\n        return !holidays[i].before(end)\n    })\n\n    \/\/ there are last - first holidays  in the range [start..end]\n    numholidays := last - first\n    if last &lt; len(holidays) &amp;&amp; holidays[last].equal(end) {\n        numholidays++ \/\/ end is exactly a holiday\n    }\n\n    if numholidays == 0 {\n        return end \/\/ we're done\n    }\n\n    \/\/ we have to add numholidays, using the same \"rules\" above:\n    return adddaysfast(end, numholidays)\n}<\/pre>\n<p>\u6d4b\u8bd5\u5b83\uff1a<\/p>\n<pre>d := time.date(2022, time.april, 14, 0, 0, 0, 0, time.utc)\nfmt.println(adddaysfast(d, 0))\nfmt.println(adddaysfast(d, 1))\nfmt.println(adddaysfast(d, 10))<\/pre>\n<p>\u8f93\u51fa\uff08\u5728\u4e0a\u8bd5\u8bd5\uff09\uff1a<\/p>\n<pre>2022-04-14 00:00:00 +0000 utc\n2022-04-18 00:00:00 +0000 utc\n2022-04-29 00:00:00 +0000 utc<\/pre>\n<h2>\u6539\u8fdb <code>adddaysfast()<\/code><\/h2>\n<p>\u8fd8\u6709\u6539\u8fdb<code>adddaysfast()<\/code>\u7684\u65b9\u6cd5\uff1a<\/p>\n<ul>\n<li>\u68c0\u67e5\u5c0f\u6570\u5468\u4e2d\u5468\u672b\u7684\u521d\u59cb\u5faa\u73af\u53ef\u4ee5\u7528\u7b97\u672f\u8ba1\u7b97\u4ee3\u66ff\uff08\u53c2\u89c1 \uff09<\/li>\n<li>\u53ef\u4ee5\u7528\u8fed\u4ee3\u89e3\u51b3\u65b9\u6848\u4ee3\u66ff\u9012\u5f52<\/li>\n<li>\u53e6\u4e00\u79cd\u89e3\u51b3\u65b9\u6848\u53ef\u4ee5\u5c06\u5468\u672b\u5217\u4e3a\u5047\u671f\uff0c\u56e0\u6b64\u53ef\u4ee5\u5220\u9664\u8ba1\u7b97\u5468\u672b\u7684\u7b2c\u4e00\u90e8\u5206\uff08\u4e0d\u5f97\u5305\u542b\u91cd\u590d\u9879\uff09<\/li>\n<\/ul>\n<p>\u6211\u4f1a\u50cf\u8fd9\u6837\u8ba1\u7b97\u5de5\u4f5c\u65e5\u3002\u4e0d\u5305\u62ec\u5047\u671f\u67e5\u627e\uff0c\u5b83\u6ca1\u6709\u5faa\u73af\uff0c\u65f6\u95f4\u548c\u7a7a\u95f4\u590d\u6742\u5ea6\u4e3a o(1)\uff1a<\/p>\n<ul>\n<li>\n<p>\u8ba1\u7b97\u8303\u56f4\u7684\u5f00\u59cb\u65e5\u671f\u548c\u7ed3\u675f\u65e5\u671f\u4e4b\u95f4\u7684\u6574\u6570\u5929\u6570<\/p>\n<\/li>\n<li>\n<p>\u5c06\u5176\u9664\u4ee5 7\u3002\u5546\u662f\u8be5\u8303\u56f4\u5185\u7684\u6574\u6570\u5468\u6570\uff1b\u4f59\u6570\u662f\u5269\u4f59\u7684\u4e00\u5468\u7684\u5c0f\u6570\u90e8\u5206\uff0c\u4ee5\u6574\u5929\u8ba1\u7b97\u3002<\/p>\n<\/li>\n<li>\n<p>\u8be5\u8303\u56f4\u5185\u7684\u57fa\u672c\u5de5\u4f5c\u65e5\u6570\u662f\u8be5\u8303\u56f4\u5185\u7684\u5468\u6570\u4e58\u4ee5 5\uff0c\u56e0\u4e3a\u6bcf 7 \u5929\u7684\u65f6\u95f4\u6bb5\uff08\u65e0\u8bba\u4f55\u65f6\u5f00\u59cb\uff09\u90fd\u5305\u542b 2 \u4e2a\u5468\u672b\u3002<\/p>\n<\/li>\n<li>\n<p>\u5fc5\u987b\u8c03\u6574\u6700\u540e\u7684\u5c0f\u6570\u5468\uff08\u4ee5\u6574\u5929\u4e3a\u5355\u4f4d\uff09\u4ee5\u5220\u9664\u4efb\u4f55\u5468\u672b\u3002\u8fd9\u662f\u5c0f\u6570\u5468\u4e2d\u7684\u6574\u6570\u5929\u6570\u548c\u8303\u56f4\u7ed3\u675f\u65e5\u671f\u7684\u661f\u671f\u51e0\u7684\u51fd\u6570\u3002<\/p>\n<\/li>\n<li>\n<p>\u5047\u671f\u67e5\u627e\u7559\u7ed9\u8bfb\u8005\u4f5c\u4e3a\u7ec3\u4e60\uff0c\u56e0\u4e3a\u8fd9\u592a\u4f9d\u8d56\u4e8e\u6587\u5316\u3001\u5730\u533a\u548c\u4e1a\u52a1\uff0c\u65e0\u6cd5\u89e3\u51b3\u3002\u5e94\u8be5\u6ce8\u610f\u7684\u662f\uff0c\u8fd9\u91cc\u7684\u903b\u8f91\u4e2d\u6709\u4e00\u4e2a\u5185\u7f6e\u7684\u5047\u8bbe\uff0c\u5373\u201c\u5047\u671f\u201d\u4e0d\u4f1a\u53d1\u751f\u5728\u5468\u516d\u6216\u5468\u65e5\u3002<\/p>\n<\/li>\n<\/ul>\n<pre>func BusinessDays(start time.Time, end time.Time) int {\n    from := toDate(start)\n    thru := toDate(end)\n    weeks, days := delta(from, thru)\n\n    adjustedDays := adjustDays(days, thru.Weekday())\n\n    businessDays := ( ( weeks * 5) + adjustedDays ) - holidaysInRange(from, thru)\n\n    return businessDays\n\n}\n\nfunc toDate(t time.Time) time.Time {\n    y, m, d := t.Date()\n    adjusted := time.Date(y, m, d, 0, 0, 0, 0, t.Location())\n    return adjusted\n}\n\nfunc holidaysInRange(from, thru time.Time) (cnt int) {\n    \/\/ TODO: Actual implementation left as an exercise for the reader\n    return cnt\n}\n\nfunc delta(from, thru time.Time) (weeks, days int) {\n    const seconds_per_day = 86400\n    totalDays := (thru.Unix() - from.Unix()) \/ seconds_per_day\n\n    weeks = int(totalDays \/ 7)\n    days = int(totalDays % 7)\n    return weeks, days\n}\n\nfunc adjustDays(days int, lastDay time.Weekday) int {\n    adjusted := days\n    switch days {\n    case 1:\n        switch lastDay {\n        case time.Saturday:\n        case time.Sunday:\n            adjusted -= 1\n        }\n    case 2:\n        switch lastDay {\n        case time.Sunday:\n            adjusted -= 2\n        case time.Saturday:\n        case time.Monday:\n            adjusted -= 1\n        }\n    case 3:\n        switch lastDay {\n        case time.Sunday:\n        case time.Monday:\n            adjusted -= 2\n        case time.Tuesday:\n        case time.Saturday:\n            adjusted -= 1\n        }\n    case 4:\n        switch lastDay {\n        case time.Sunday:\n        case time.Monday:\n        case time.Tuesday:\n            adjusted -= 2\n        case time.Wednesday:\n        case time.Saturday:\n            adjusted -= 1\n        }\n    case 5:\n        switch lastDay {\n        case time.Sunday:\n        case time.Monday:\n        case time.Tuesday:\n        case time.Wednesday:\n            adjusted -= 2\n        case time.Thursday:\n        case time.Saturday:\n            adjusted -= 1\n        }\n    case 6:\n        switch lastDay {\n        case time.Sunday:\n        case time.Monday:\n        case time.Tuesday:\n        case time.Wednesday:\n        case time.Thursday:\n            adjusted -= 2\n        case time.Friday:\n        case time.Saturday:\n            adjusted -= 1\n        }\n    }\n\n    return adjusted\n}\n<\/pre>\n<p>\u4eca\u5929\u5173\u4e8e\u300a\u8ba1\u7b97\u8df3\u8fc7\u5047\u671f\u548c\u5468\u672b\u7684\u5de5\u4f5c\u65e5\u300b\u7684\u5185\u5bb9\u5c31\u4ecb\u7ecd\u5230\u8fd9\u91cc\u4e86\uff0c\u662f\u4e0d\u662f\u5b66\u8d77\u6765\u4e00\u76ee\u4e86\u7136\uff01\u60f3\u8981\u4e86\u89e3\u66f4\u591a\u5173\u4e8e\u7684\u5185\u5bb9\u8bf7\u5173\u6ce8\u516c\u4f17\u53f7\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5f53\u524d\u4f4d\u7f6e\uff1a &gt; &gt; &#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4925],"tags":[],"class_list":["post-207353","post","type-post","status-publish","format-standard","hentry","category-4925"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/207353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=207353"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/207353\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=207353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=207353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=207353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}