{"id":49663,"date":"2026-03-31T14:45:42","date_gmt":"2026-03-31T14:45:42","guid":{"rendered":"https:\/\/www.2usa.org\/?page_id=49663"},"modified":"2026-04-02T04:16:53","modified_gmt":"2026-04-02T04:16:53","slug":"priority-dates","status":"publish","type":"page","link":"https:\/\/www.2usa.org\/vi\/priority-dates\/","title":{"rendered":"Ng\u00e0y \u01b0u ti\u00ean"},"content":{"rendered":"\n<div id=\"visa-bulletin-app\">\n  <h2 id=\"vb-title\">\ud83d\udcca Visa Bulletin<\/h2>\n  <div id=\"visa-data\">Loading latest data&#8230;<\/div>\n<\/div>\n\n<script>\nasync function fetchWithFallback(urls) {\n  for (let url of urls) {\n    try {\n      const res = await fetch(url);\n      if (!res.ok) throw new Error(\"Bad response\");\n      return await res.text();\n    } catch (err) {\n      console.warn(\"Failed:\", url);\n    }\n  }\n  throw new Error(\"All sources failed\");\n}\n\nasync function fetchVisaData() {\n  try {\n    \/\/ \ud83d\udd25 PRIMARY + 2 BACKUPS\n    const urls = [\n      \"https:\/\/visapi.hfl093.workers.dev\",   \/\/ Primary\n      \"https:\/\/visaapi.559555.xyz\"        \/\/ Backup 1\n    ];\n\n    const html = await fetchWithFallback(urls);\n\n    const parser = new DOMParser();\n    const doc = parser.parseFromString(html, \"text\/html\");\n\n    \/\/ =====================\n    \/\/ \ud83d\udfe2 TITLE\n    \/\/ =====================\n    let titleText = \"Visa Bulletin\";\n    const h1 = doc.querySelector(\"h1\");\n    if (h1) titleText = h1.innerText.trim();\n\n    document.getElementById(\"vb-title\").innerText = \"\ud83d\udcca \" + titleText;\n\n    \/\/ =====================\n    \/\/ \ud83d\udfe2 DEFINITIONS\n    \/\/ =====================\n    const descriptions = {\n      \"F-1\": \"Unmarried sons and daughters (21+) of U.S. citizens.\",\n      \"F-2A\": \"Spouses and unmarried children (under 21) of permanent residents.\",\n      \"F-2B\": \"Unmarried sons and daughters (21+) of permanent residents.\",\n      \"F-3\": \"Married sons and daughters of U.S. citizens.\",\n      \"F-4\": \"Brothers and sisters of U.S. citizens (petitioner must be 21+).\",\n      \"EB-1\": \"Priority workers (extraordinary ability, professors\/researchers, executives).\",\n      \"EB-2\": \"Advanced degree or exceptional ability (includes NIW - self petition).\",\n      \"EB-3\": \"Skilled workers, professionals, and other workers.\",\n      \"EB-4\": \"Special immigrants (religious workers and others).\",\n      \"EB-5\": \"Investors creating jobs in the U.S.\"\n    };\n\n    const categories = Object.keys(descriptions);\n    const result = {};\n\n    categories.forEach(cat => {\n      const heading = [...doc.querySelectorAll(\"h3\")]\n        .find(h => h.textContent.includes(cat));\n\n      if (!heading) return;\n\n      const table = heading.nextElementSibling;\n      if (!table) return;\n\n      const rows = table.querySelectorAll(\".component-table-item\");\n      const data = [];\n\n      rows.forEach((row, index) => {\n        if (index === 0) return;\n\n        const cols = row.querySelectorAll(\".component-table-header-cell\");\n\n        if (cols.length >= 4) {\n          data.push({\n            country: cols[0].innerText.trim(),\n            newDate: cols[1].innerText.trim(),\n            oldDate: cols[2].innerText.trim(),\n            movement: cols[3].innerText.trim()\n          });\n        }\n      });\n\n      result[cat] = data;\n    });\n\n    renderData(result, descriptions);\n\n  } catch (err) {\n    document.getElementById(\"visa-data\").innerHTML =\n      \"\u274c Failed to load visa bulletin data (all sources failed).\";\n    console.error(err);\n  }\n}\n\n\/\/ =====================\n\/\/ \ud83c\udfa8 RENDER\n\/\/ =====================\nfunction renderData(data, descriptions) {\n  let html = \"\";\n\n  for (const category in data) {\n\n    html += `\n      <h3 style=\"margin-top:30px;\">\n        <strong>${category}:<\/strong>\n        <span style=\"font-weight:normal;\">\n          ${descriptions[category]}\n        <\/span>\n      <\/h3>\n    `;\n\n    html += `\n      <table style=\"width:100%; border-collapse: collapse; margin-bottom:25px;\">\n        <tr style=\"background:#f2f2f2;\">\n          <th style=\"border:1px solid #ddd;padding:10px;\">Country<\/th>\n          <th style=\"border:1px solid #ddd;padding:10px;\">New Date<\/th>\n          <th style=\"border:1px solid #ddd;padding:10px;\">Old Date<\/th>\n          <th style=\"border:1px solid #ddd;padding:10px;\">Movement<\/th>\n        <\/tr>\n    `;\n\n    data[category].forEach(row => {\n\n      const movementText = row.movement.toLowerCase();\n      const newDateText = row.newDate.toLowerCase();\n\n      let bgColor = \"#e74c3c\"; \/\/ \ud83d\udd34 default\n      let displayText = row.movement;\n\n      \/\/ \u2705 CONDITION 1: New Date = Current \u2192 override text\n      if (newDateText.includes(\"current\")) {\n        bgColor = \"#2ecc71\";\n        displayText = \"Current\";\n      }\n\n      \/\/ \u2705 CONDITION 2: movement shows time \u2192 green\n      else if (\n        movementText.includes(\"month\") ||\n        movementText.includes(\"week\") ||\n        movementText.includes(\"day\")\n      ) {\n        bgColor = \"#2ecc71\";\n      }\n\n      html += `\n        <tr>\n          <td style=\"border:1px solid #ddd;padding:10px;\">${row.country}<\/td>\n          <td style=\"border:1px solid #ddd;padding:10px;\">${row.newDate}<\/td>\n          <td style=\"border:1px solid #ddd;padding:10px;\">${row.oldDate}<\/td>\n          <td style=\"border:1px solid #ddd;padding:10px;\">\n            <span style=\"\n              display:inline-block;\n              padding:6px 10px;\n              background:${bgColor};\n              color:#fff;\n              border-radius:6px;\n              font-weight:bold;\n              min-width:80px;\n              text-align:center;\n            \">\n              ${displayText}\n            <\/span>\n          <\/td>\n        <\/tr>\n      `;\n    });\n\n    html += \"<\/table>\";\n  }\n\n  document.getElementById(\"visa-data\").innerHTML = html;\n}\n\n\/\/ \ud83d\ude80 RUN\nfetchVisaData();\n<\/script>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udcca B\u1ea3n tin Visa \u0110ang t\u1ea3i d\u1eef li\u1ec7u m\u1edbi nh\u1ea5t\u2026<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":{"0":"post-49663","1":"page","2":"type-page","3":"status-publish","5":"no-featured-image-padding"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Priority Dates - 2USA.org<\/title>\n<meta name=\"description\" content=\"The Latest Priority Dates for U.S. Green Card applicants, updated monthly.\" \/>\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.2usa.org\/vi\/priority-dates\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Priority Dates\" \/>\n<meta property=\"og:description\" content=\"The Latest Priority Dates for U.S. Green Card applicants, updated monthly.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.2usa.org\/vi\/priority-dates\/\" \/>\n<meta property=\"og:site_name\" content=\"2USA.org\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-02T04:16:53+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.2usa.org\/priority-dates\/\",\"url\":\"https:\/\/www.2usa.org\/priority-dates\/\",\"name\":\"Priority Dates - 2USA.org\",\"isPartOf\":{\"@id\":\"https:\/\/www.2usa.org\/#website\"},\"datePublished\":\"2026-03-31T14:45:42+00:00\",\"dateModified\":\"2026-04-02T04:16:53+00:00\",\"description\":\"The Latest Priority Dates for U.S. Green Card applicants, updated monthly.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.2usa.org\/priority-dates\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.2usa.org\/priority-dates\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.2usa.org\/priority-dates\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.2usa.org\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Priority Dates\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.2usa.org\/#website\",\"url\":\"https:\/\/www.2usa.org\/\",\"name\":\"2USA.org\",\"description\":\"Navigate Your Path to the United States\",\"publisher\":{\"@id\":\"https:\/\/www.2usa.org\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.2usa.org\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.2usa.org\/#organization\",\"name\":\"2USA News Inc.\",\"url\":\"https:\/\/www.2usa.org\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/www.2usa.org\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.2usa.org\/wp-content\/uploads\/2026\/03\/cropped-2usa_logo_transparent.png\",\"contentUrl\":\"https:\/\/www.2usa.org\/wp-content\/uploads\/2026\/03\/cropped-2usa_logo_transparent.png\",\"width\":512,\"height\":512,\"caption\":\"2USA News Inc.\"},\"image\":{\"@id\":\"https:\/\/www.2usa.org\/#\/schema\/logo\/image\/\"},\"description\":\"2USA is a private news and information publication based in Washington, D.C., focused on delivering timely, credible, and accessible coverage of U.S. immigration policy, visa developments, regulatory changes, and critical dates that matter to people planning to move to the United States.\",\"email\":\"hello@2usa.org\",\"legalName\":\"2USA News Inc\",\"foundingDate\":\"2025-05-21\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1\",\"maxValue\":\"10\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ng\u00e0y \u01b0u ti\u00ean - 2USA.org","description":"Ng\u00e0y \u01b0u ti\u00ean x\u00e9t duy\u1ec7t th\u1ebb xanh M\u1ef9 m\u1edbi nh\u1ea5t, \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt h\u00e0ng th\u00e1ng.","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.2usa.org\/vi\/priority-dates\/","og_locale":"vi_VN","og_type":"article","og_title":"Priority Dates","og_description":"The Latest Priority Dates for U.S. Green Card applicants, updated monthly.","og_url":"https:\/\/www.2usa.org\/vi\/priority-dates\/","og_site_name":"2USA.org","article_modified_time":"2026-04-02T04:16:53+00:00","twitter_card":"summary_large_image","twitter_misc":{"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"1 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.2usa.org\/priority-dates\/","url":"https:\/\/www.2usa.org\/priority-dates\/","name":"Ng\u00e0y \u01b0u ti\u00ean - 2USA.org","isPartOf":{"@id":"https:\/\/www.2usa.org\/#website"},"datePublished":"2026-03-31T14:45:42+00:00","dateModified":"2026-04-02T04:16:53+00:00","description":"Ng\u00e0y \u01b0u ti\u00ean x\u00e9t duy\u1ec7t th\u1ebb xanh M\u1ef9 m\u1edbi nh\u1ea5t, \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt h\u00e0ng th\u00e1ng.","breadcrumb":{"@id":"https:\/\/www.2usa.org\/priority-dates\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.2usa.org\/priority-dates\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.2usa.org\/priority-dates\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.2usa.org\/"},{"@type":"ListItem","position":2,"name":"Priority Dates"}]},{"@type":"WebSite","@id":"https:\/\/www.2usa.org\/#website","url":"https:\/\/www.2usa.org\/","name":"2USA.org","description":"T\u00ecm \u0111\u01b0\u1eddng \u0111\u1ebfn Hoa K\u1ef3","publisher":{"@id":"https:\/\/www.2usa.org\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.2usa.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Organization","@id":"https:\/\/www.2usa.org\/#organization","name":"C\u00f4ng ty tin t\u1ee9c 2USA.","url":"https:\/\/www.2usa.org\/","logo":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.2usa.org\/#\/schema\/logo\/image\/","url":"https:\/\/www.2usa.org\/wp-content\/uploads\/2026\/03\/cropped-2usa_logo_transparent.png","contentUrl":"https:\/\/www.2usa.org\/wp-content\/uploads\/2026\/03\/cropped-2usa_logo_transparent.png","width":512,"height":512,"caption":"2USA News Inc."},"image":{"@id":"https:\/\/www.2usa.org\/#\/schema\/logo\/image\/"},"description":"2USA l\u00e0 m\u1ed9t \u1ea5n ph\u1ea9m tin t\u1ee9c v\u00e0 th\u00f4ng tin t\u01b0 nh\u00e2n c\u00f3 tr\u1ee5 s\u1edf t\u1ea1i Washington, DC, t\u1eadp trung v\u00e0o vi\u1ec7c cung c\u1ea5p th\u00f4ng tin k\u1ecbp th\u1eddi, \u0111\u00e1ng tin c\u1eady v\u00e0 d\u1ec5 ti\u1ebfp c\u1eadn v\u1ec1 ch\u00ednh s\u00e1ch nh\u1eadp c\u01b0 c\u1ee7a Hoa K\u1ef3, c\u00e1c di\u1ec5n bi\u1ebfn v\u1ec1 th\u1ecb th\u1ef1c, nh\u1eefng thay \u0111\u1ed5i v\u1ec1 quy \u0111\u1ecbnh v\u00e0 c\u00e1c ng\u00e0y quan tr\u1ecdng c\u00f3 \u00fd ngh\u0129a \u0111\u1ed1i v\u1edbi nh\u1eefng ng\u01b0\u1eddi \u0111ang l\u00ean k\u1ebf ho\u1ea1ch chuy\u1ec3n \u0111\u1ebfn Hoa K\u1ef3.","email":"hello@2usa.org","legalName":"2USA News Inc","foundingDate":"2025-05-21","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1","maxValue":"10"}}]}},"_links":{"self":[{"href":"https:\/\/www.2usa.org\/vi\/wp-json\/wp\/v2\/pages\/49663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.2usa.org\/vi\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.2usa.org\/vi\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.2usa.org\/vi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.2usa.org\/vi\/wp-json\/wp\/v2\/comments?post=49663"}],"version-history":[{"count":10,"href":"https:\/\/www.2usa.org\/vi\/wp-json\/wp\/v2\/pages\/49663\/revisions"}],"predecessor-version":[{"id":49726,"href":"https:\/\/www.2usa.org\/vi\/wp-json\/wp\/v2\/pages\/49663\/revisions\/49726"}],"wp:attachment":[{"href":"https:\/\/www.2usa.org\/vi\/wp-json\/wp\/v2\/media?parent=49663"}],"curies":[{"name":"trang web","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}