diff --git a/src/components/GanttChart/GanttChart.vue b/src/components/GanttChart/GanttChart.vue
index 077ad5692e1b149862d659fb5c0bfc9b8b1ad1b8..cd5b09252776ca402a506a1335f7ee013139c5d5 100644
--- a/src/components/GanttChart/GanttChart.vue
+++ b/src/components/GanttChart/GanttChart.vue
@@ -220,12 +220,23 @@ function clearOriginalMaps() {
 
 function convertToLocalTime(utcString: string): string {
   const d = new Date(utcString)
-  const iso = d.toISOString()
-  // ๐ŸŸข เธ„เธทเธ™เนเธšเธšเน„เธกเนˆเนเธ›เธฅเธ‡ timezone (เนเธ„เนˆเธ•เธฑเธ”เน€เธงเธฅเธฒเนƒเธซเน‰ format เธชเธงเธข)
-  return iso.slice(0, 16).replace('T', ' ')
+
+  const isLocalhost = ['localhost', '127.0.0.1'].includes(window.location.hostname)
+
+  if (isLocalhost) {
+    // ๐ŸŸข เนเธ›เธฅเธ‡เน€เธ›เน‡เธ™ local time (Asia/Bangkok)
+    d.setHours(d.getHours() + 7) // เธ›เธฃเธฑเธš +7 เธŠเธฑเนˆเธงเน‚เธกเธ‡
+    const iso = d.toISOString()
+    return iso.slice(0, 16).replace('T', ' ')
+  } else {
+    // ๐Ÿ”ต Prod โ†’ เน„เธกเนˆเนเธ›เธฅเธ‡ timezone, เนเธ„เนˆ format เธชเธงเธข เน†
+    const iso = d.toISOString()
+    return iso.slice(0, 16).replace('T', ' ')
+  }
 }
 
 
+
 // Pagination & Dialog
 const pages = computed(() => pageStore.pages.map((p) => p.pagenum))
 const pageToShowDelete = ref<number | null>(null)