jQuery格式化时间

jQuery Format Time

本文关键字:时间 格式化 jQuery      更新时间:2023-09-26

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

params.tweetDate='77771564221';

我需要做的是创建一个jQuery函数,它将能够在美国时间格式化这个毫秒字符串,比如10.00 AM10.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)
不,没有jQuery函数。你可以使用
  • JavaScript自己的Date对象,使用getHours()getMinutes()函数,自己处理AM/PM事务(例如,hours>=12是PM),如果minutes小于10,则用前导0填充minutes,等等。另外请注意,如果hours是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));

然而,您所引用的值,即毫秒值,似乎有点奇怪—通常情况下,距离JavaScript使用的大纪元(1970年1月1日)只有几毫秒的时间,但new Date(parseInt("77771564221", 10))给我们的日期是1972年6月,早在Twitter之前。自大纪元以来也不是(一种相当常见的Unix约定),因为new Date(parseInt("77771564221", 10) * 1000)给了我们4434年6月的日期。因此,首先要找出的是该值实际代表的值,从的毫秒数。然后将其调整为自大纪元以来的毫秒数,并将其输入new Date()以获取对象。

这里有一个函数:

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

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

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