我有一個接收一個字符串以毫秒爲單位的參數裏面,像這樣的jQuery腳本:jQuery的格式時間
params.tweetDate='77771564221';
我需要做的是創造一個jQuery的功能,將能夠格式化這個毫秒字符串在美國時間,如10.00 AM
或10.00 PM
。
有沒有能夠做到這一點的jQuery功能?
請幫忙。
謝謝
我有一個接收一個字符串以毫秒爲單位的參數裏面,像這樣的jQuery腳本:jQuery的格式時間
params.tweetDate='77771564221';
我需要做的是創造一個jQuery的功能,將能夠格式化這個毫秒字符串在美國時間,如10.00 AM
或10.00 PM
。
有沒有能夠做到這一點的jQuery功能?
請幫忙。
謝謝
有純JavaScript的Date對象,不需要jQuery。 http://www.javascriptkit.com/jsref/date.shtml
實施例:
var time = new Date(params.tweetDate),
h = time.getHours(), // 0-24 format
m = time.getMinutes();
// next just convert to AM/PM format (check if h > 12)
請你舉個例子嗎? – 2012-01-10 09:57:13
增加了一些代碼。我敢肯定,你可以完成它。 – YuS 2012-01-10 10:09:00
Yuri:*「(檢查h> 12)」*不,它是'h> = 12'(12是中午12點,0是上午12點)。 – 2012-01-10 11:33:58
不,這裏沒有jQuery功能。您可以使用
Date
對象,使用getHours()
和getMinutes()
功能,你自己處理AM/PM的東西(例如,小時> = 12點),擁有國內領先的0填充走出分鐘,如果分鐘小於10等。另請注意,如果小時數爲0,則要將其設置爲12(因爲使用AM/PM樣式時,您將午夜編寫爲「12:00 AM」,而不是「0:00 AM」)。只使用任何那些,首先你必須把那個「毫秒」的值變成一個Date
對象。如果它真的是「毫秒」值,那麼首先通過parseInt(str, 10)
將字符串解析爲數字,然後使用new Date(num)
創建表示該時間點的對象。所以:
var dt = new Date (parseInt(params.tweetDate, 10));
然而,你說你引述的價值,是一個毫秒值,似乎有點奇怪 —通常是毫秒,因爲大紀元(1970年1月1日),這是JavaScript使用,但new Date(parseInt("77771564221", 10))
早在1972年6月就給我們提供了一個日期,早在Twitter之前。它不是秒自從Epoch(一個相當常見的Unix約定),因爲new Date(parseInt("77771564221", 10) * 1000)
給了我們一個日期在4434年6月。因此,首先要找出的是實際表示的值,從以來的毫秒數。然後調整它,使它從The Epoch開始的毫秒數,並將其送入new Date()
以獲取對象。
這對我的毫秒字符串是如何工作的?我有點困惑。 – 2012-01-10 09:58:54
@DiegoP:啊,對不起,把它留下。更新。不過,你所引用的價值有點奇怪。 – 2012-01-10 10:03:23
使用T.J.的解決方案,這是我最終。
var date = new Date(parseInt("77771564221", 10));
var result = new Array();
result[0] = $.datepicker.formatDate('DD, M, d, yy', date);
result[1] = ' ';
if (date.getHours() > 12) {
result[2] = date.getHours() - 12;
} else if (date.getHours() == 0) {
result[2] = "12";
} else {
result[2] = date.getHours();
}
result[3] = ":"
result[4] = date.getMinutes();
if (date.getHours() > 12) {
result[5] = " pm";
} else {
result[5] = " am";
}
console.log(result.join(''));
這是給你的函數:
function timeFormatter(dateTime){
var date = new Date(dateTime);
if (date.getHours()>=12){
var hour = parseInt(date.getHours()) - 12;
var amPm = "PM";
} else {
var hour = date.getHours();
var amPm = "AM";
}
var time = hour + ":" + date.getMinutes() + " " + amPm;
console.log(time);
return time;
}
,您可以調用函數就像任何方法:
var time = timeFormatter(parseInt("2345678998765"));
是什麼tweetDate代表什麼?是自午夜或自1969年以來的毫秒(我認爲這是日期將從毫秒開始計算的地方)? – redmoon7777 2012-01-10 10:01:03
@ redmoon7777:自紀元(1970年1月1日午夜格林威治標準時)開始,正常值爲秒或毫秒。我在回答中注意到,以上看起來都不是,因爲大紀元給我們1972年6月的一個日期(早在Twitter之前)使用它爲毫秒,並且使用它作爲自大紀元給我們在4434年6月的日期以來的秒數。 :-)所以第一件事的確是要找出那個價值代表什麼。 – 2012-01-10 10:08:51