jQuery格式时间

时间:2012-01-10 09:49:37

标签: javascript jquery

我有一个jQuery脚本,它在参数内接收一个以毫秒为单位的字符串,如下所示:

params.tweetDate='77771564221';

我需要做的是创建一个jQuery函数,该函数能够在美国时间格式化这个毫秒字符串,如10.00 AM10.00 PM

是否有能够执行此操作的jQuery函数?

请帮忙。

由于

5 个答案:

答案 0 :(得分:8)

纯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)

答案 1 :(得分:3)

不,这没有jQuery功能。你可以使用

  • JavaScript自己的Date对象,使用getHours()getMinutes()函数,自己处理AM / PM事物(例如,小时> = 12是PM),填写分钟如果分钟小于10,则前导0,等等。另请注意,如果小时为0,则需要将其设为12(因为在使用AM / PM样式时,您将午夜写为“12:00 AM”,而不是“ 0:00 AM“)。
  • DateJS,一个附加库,可以处理大量日期内容(虽然遗憾的是它没有被主动维护)
  • 来自John Resig(jQuery的创建者)的
  • PrettyDate

要使用其中任何一个,首先必须将“毫秒”值转换为Date对象。如果它确实是“毫秒”值,那么首先通过parseInt(str, 10)将字符串解析为数字,然后使用new Date(num)创建表示该时间点的Date对象。所以:

var dt = new Date (parseInt(params.tweetDate, 10));

然而,你所引用的值,你所说的是一个毫秒值,似乎有点奇怪 - 通常是自The Epoch(1970年1月1日)以来的毫秒,这是JavaScript使用的,但是new Date(parseInt("77771564221", 10))在Twitter之前很久就给了我们1972年6月的约会。从Epoch开始,它不是(一种相当常见的Unix惯例),因为new Date(parseInt("77771564221", 10) * 1000)在6434年6月给我们一个日期。所以要找出的第一件事是该值实际代表什么,自 以来的毫秒数。然后将其调整为自The Epoch以来的毫秒数,然后将其输入new Date()以获取对象。

答案 2 :(得分:2)

以下是您的功能:

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"));

答案 3 :(得分:1)

看看timeago:这是一个专门用于此目的的jquery插件。

答案 4 :(得分:1)

使用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(''));