ผมเขียนแบบนี้ครับ เวลาใส่ค่าเข้าไป ได้วันที่ตรง แต่เวลาเอาไปใช้ ใน googlesheet มันดันหายไป 1 วัน
แทนที่จะได้ Thu Mar 12 2020 00:00:00 GMT+0700 (Indochina Time)
ดันกลายเป็น 11-Mar-2020 แทน เคยเจอปัญหาแบบนี้แก้อย่างไรครับ (นอกจากจะเอา 1 วัน ไปบวกตอนท้าย)
ใส่โค้ด
function test(){
var s = '12 มีค 63';
console.log(GetDateFromStr(s));
//Thu Mar 12 2020 00:00:00 GMT+0700 (Indochina Time)
}
function GetDateFromStr(str) {
var arr = str.split(' ');
var q = GetMthfromThStr_(arr[1]);
//var ans = Date.parse('2020-2-12');
//' 3 พค 63 ';
//Sun May 03 00:00:00 GMT+07:00 2020
var y = Porsor2Korsor(arr[2]);
var m = GetMthfromThStr_(arr[1]);
var ans = new Date(y,m,arr[0]);
return (ans);
}
function Porsor2Korsor(mstr){
var m = parseInt(mstr);
return ((2500+m)-543);
}
function GetMthfromThStr_(str){
switch (str) {
case 'มค':
ans = 1;
break;
case 'กพ':
ans = 2;
break;
case 'มีค':
ans = 3;
break;
case 'เมย':
ans = 4;
break;
case 'เมย':
ans = 4;
break;
case 'เมย':
ans = 4;
break;
case 'เมย':
ans = 4;
break;
case 'พค':
ans = 5;
break;
case 'มิย':
ans = 6;
break;
case 'กค':
ans = 7;
break;
case 'สค':
ans = 8;
break;
case 'กย':
ans = 9;
break;
case 'ตค':
ans = 10;
break;
case 'พย':
ans = 11;
break;
default:
ans = 12;
}
return ans-1;
// ที่ลบ 1 เพราะ month รับค่า 0-11
}
javascript date function
แทนที่จะได้ Thu Mar 12 2020 00:00:00 GMT+0700 (Indochina Time)
ดันกลายเป็น 11-Mar-2020 แทน เคยเจอปัญหาแบบนี้แก้อย่างไรครับ (นอกจากจะเอา 1 วัน ไปบวกตอนท้าย)
function test(){
var s = '12 มีค 63';
console.log(GetDateFromStr(s));
//Thu Mar 12 2020 00:00:00 GMT+0700 (Indochina Time)
}
function GetDateFromStr(str) {
var arr = str.split(' ');
var q = GetMthfromThStr_(arr[1]);
//var ans = Date.parse('2020-2-12');
//' 3 พค 63 ';
//Sun May 03 00:00:00 GMT+07:00 2020
var y = Porsor2Korsor(arr[2]);
var m = GetMthfromThStr_(arr[1]);
var ans = new Date(y,m,arr[0]);
return (ans);
}
function Porsor2Korsor(mstr){
var m = parseInt(mstr);
return ((2500+m)-543);
}
function GetMthfromThStr_(str){
switch (str) {
case 'มค':
ans = 1;
break;
case 'กพ':
ans = 2;
break;
case 'มีค':
ans = 3;
break;
case 'เมย':
ans = 4;
break;
case 'เมย':
ans = 4;
break;
case 'เมย':
ans = 4;
break;
case 'เมย':
ans = 4;
break;
case 'พค':
ans = 5;
break;
case 'มิย':
ans = 6;
break;
case 'กค':
ans = 7;
break;
case 'สค':
ans = 8;
break;
case 'กย':
ans = 9;
break;
case 'ตค':
ans = 10;
break;
case 'พย':
ans = 11;
break;
default:
ans = 12;
}
return ans-1;
// ที่ลบ 1 เพราะ month รับค่า 0-11
}