0
一個第三黨給我提供了一個EDT時間戳的格式如下:轉換EDT時間戳PST與正則表達式/ JavaScript的
MM/DD/YYYY HH:MM
例如:' 2013年8月19日11:31'
我需要它使用JavaScript(相同的日期時間格式)轉換爲PST,並已在尋找所有,但不能找到有關這個產品的信息。如果有人能幫我用一些示例代碼,我真的很感激它。
一個第三黨給我提供了一個EDT時間戳的格式如下:轉換EDT時間戳PST與正則表達式/ JavaScript的
MM/DD/YYYY HH:MM
例如:' 2013年8月19日11:31'
我需要它使用JavaScript(相同的日期時間格式)轉換爲PST,並已在尋找所有,但不能找到有關這個產品的信息。如果有人能幫我用一些示例代碼,我真的很感激它。
如果你想手動做到這一點,你可以嘗試以下方法:用空格
new Date()
並以正確的順序提供正確的值。下面是此所有的實例:
var est = "01/01/2014 02:31",
finalDate, pst;
finalDate = parseDateString(est);
finalDate.setHours(finalDate.getHours() - 3);
pst = formatDate(finalDate);
console.log(pst);
function parseDateString(str) {
var dateTime, date, time, dateSplit, month, day, year, timeSplit, hour, minute;
dateTime = est.split(" ");
date = dateTime[0];
time = dateTime[1];
dateSplit = date.split("/");
month = dateSplit[0] - 1;
day = dateSplit[1];
year = dateSplit[2];
timeSplit = time.split(":");
hour = timeSplit[0];
minute = timeSplit[1];
return new Date(year, month, day, hour, minute);
}
function formatDate(d) {
return padZero(d.getMonth() + 1) + "/" + padZero(d.getDate()) + "/" + d.getFullYear() + " " + padZero(d.getHours()) + ":" + padZero(d.getMinutes());
}
function padZero(num) {
if (+num < 10) {
num = "0" + num;
}
return "" + num;
}
DEMO:http://jsfiddle.net/MmVmR/
的padZero
功能是有隻是前面加上任何0
S IN的情況下的數量小於10。
參考:
有很多日期庫都來做到這一點。但是你可以解析字符串:按空格分隔,所以你有日期和時間。然後按「:」分隔時間,並用「/」分隔日期。創建一個新的Date(),並按正確的順序提供正確的值。用適當的方法減去一天,然後重新創建格式。以下是您需要的方法的參考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date – Ian
對不起,「減去一天」,我的意思是「減3小時「。下面是我的意思的一個例子:http://jsfiddle.net/paHPK/1/ – Ian
如果您將它添加爲答案,這將非常好,我會將其標記爲正確!謝謝 – codelove