Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript。将datetime转换为pretty date。奇怪的格式_Javascript_Datetime - Fatal编程技术网

Javascript。将datetime转换为pretty date。奇怪的格式

Javascript。将datetime转换为pretty date。奇怪的格式,javascript,datetime,Javascript,Datetime,我如何使用Javascript将下面的数据转换成漂亮的格式,即“2天前” 2011-08-11 16:12:31.119218+0000 这种格式叫什么 感谢所有的投入 我认为这种格式被称为“模糊时间”。这里有一个很好的jquery库:。这里有一个不需要jquery,但如果有可用的话将使用它:我认为这种格式被称为“模糊时间”。这里有一个很好的jquery库:。这里有一个不需要jquery,但如果可用的话将使用它:看看javascripts日期对象。您可以将其设置为一个日期对象,并创建另一个日期对

我如何使用Javascript将下面的数据转换成漂亮的格式,即“2天前”

2011-08-11 16:12:31.119218+0000

这种格式叫什么


感谢所有的投入

我认为这种格式被称为“模糊时间”。这里有一个很好的jquery库:。这里有一个不需要jquery,但如果有可用的话将使用它:

我认为这种格式被称为“模糊时间”。这里有一个很好的jquery库:。这里有一个不需要jquery,但如果可用的话将使用它:

看看javascripts日期对象。您可以将其设置为一个日期对象,并创建另一个日期对象进行比较。

看看javascripts日期对象。您可以将其设置为日期对象并创建另一个日期对象进行比较。

对于这些类型的数据格式问题非常方便。

对于这些类型的数据格式问题非常方便。

尝试以下方法:

试试这个:

/*
*Javascript日期
*版权所有(c)2008 Dean Landolt(deanlandolt.com)
*扎克·莱瑟曼(zachleat.com)重写
*
*来自John Resig的pretty.js
*在http://ejohn.org/blog/javascript-pretty-date
*以及亨拉提议的修改
*在http://ejohn.org/blog/javascript-pretty-date/#comment-297458
*
*根据麻省理工学院许可证授权。
*/
函数humaneDate(日期、比较){
如果(!日期){
回来
}
变量lang={
阿戈:“阿戈”,
从:“”,
现在:"刚才",,
分钟:“分钟”,
分钟:'分钟',
小时:“小时”,
小时数:'小时',
day:“day”,
天:'天',
周:“周”,
周:“周”,
月:'月',
月:“月”,
年份:'年',
年:“年”
},
格式=[
[60,朗,现在],
[3600,lang.minute,lang.minutes,60],//60分钟,1分钟
[86400,lang.hour,lang.hours,3600],//24小时,1小时
[604800,lang.day,lang.days,86400],//7天,1天
[2628000,lang.week,lang.weeks,604800],//~1个月,1周
[31536000,lang.month,lang.months,2628000],//1年,~1个月
[Infinity,lang.year,lang.years,31536000]//无限,1年
],
isString=typeof日期==“字符串”,
date=isString?
新日期(“”+日期)。替换(/-/g,“/”)。替换(/[TZ]/g,“”):
日期
compareTo=compareTo | |新日期,
秒=(比较-日期)+
(与getTimezoneOffset()相比)-
//如果我们从字符串中收到GMT时间,则不包括时区偏差
//如果我们有一个日期对象,时区是内置的,我们需要删除它。
(isString?0:date.getTimezoneOffset())
) * 60000
) / 1000,
代币
如果(秒<0){
秒=Math.abs(秒);
标记=lang.from?“”+lang.from:“”;
}否则{
令牌=lang.ago?“”+lang.ago:“”;
}
/*
*现在0秒&<60秒
*60秒1分钟
*>60秒&<60分钟X分钟
*60分钟1小时
*>60分钟&<24小时X小时
*一天24小时
*>24小时&<7天X天
*每周7天
*>7天&<~1个月X周
*~1个月1个月
*>~1个月&<1年X个月
*1年1年
*>1年X年
*
*单个单位为+10%。1年显示第一个单位为1年+10%
*/
函数规格化(val,单个)
{
var保证金=0.1;
如果(val>=单个&val 0?标记:“”);
}
}
};
if(jQuery的类型!=“未定义”){
jQuery.fn.humaneDates=函数(选项)
{
var settings=jQuery.extend({
“小写”:false
},选项);
返回此值。每个(函数()
{
var$t=jQuery(此),
日期=$t.attr('datetime')| |$t.attr('title');
日期=人名(日期);
if(日期和设置['小写]){
date=date.toLowerCase();
}
如果(日期和$t.html()!=日期){
//如果不需要,请不要修改dom
$t.html(日期);
}
});
};
}

/*
*Javascript日期
*版权所有(c)2008 Dean Landolt(deanlandolt.com)
*扎克·莱瑟曼(zachleat.com)重写
*
*来自John Resig的pretty.js
*在http://ejohn.org/blog/javascript-pretty-date
*以及亨拉提议的修改
*在http://ejohn.org/blog/javascript-pretty-date/#comment-297458
*
*根据麻省理工学院许可证授权。
*/
函数humaneDate(日期、比较){
如果(!日期){
回来
}
变量lang={
阿戈:“阿戈”,
从:“”,
现在:"刚才",,
分钟:“分钟”,
分钟:'分钟',
小时:“小时”,
小时数:'小时',
day:“day”,
天:'天',
周:“周”,
周:“周”,
月:'月',
月:“月”,
年份:'年',
年:“年”
},
格式=[
[60,朗,现在],
[3600,lang.minute,lang.minutes,60],//60分钟,1分钟
[86400,lang.hour,lang.hours,3600],//24小时,1小时
[604800,lang.day,lang.days,86400],//7天,1天
[2628000,lang.week,lang.week,604800],//~1个月,1我们
/*
 * Javascript Humane Dates
 * Copyright (c) 2008 Dean Landolt (deanlandolt.com)
 * Re-write by Zach Leatherman (zachleat.com)
 *
 * Adopted from the John Resig's pretty.js
 * at http://ejohn.org/blog/javascript-pretty-date
 * and henrah's proposed modification
 * at http://ejohn.org/blog/javascript-pretty-date/#comment-297458
 *
 * Licensed under the MIT license.
 */

function humaneDate(date, compareTo){

    if(!date) {
        return;
    }

    var lang = {
            ago: 'Ago',
            from: '',
            now: 'Just Now',
            minute: 'Minute',
            minutes: 'Minutes',
            hour: 'Hour',
            hours: 'Hours',
            day: 'Day',
            days: 'Days',
            week: 'Week',
            weeks: 'Weeks',
            month: 'Month',
            months: 'Months',
            year: 'Year',
            years: 'Years'
        },
        formats = [
            [60, lang.now],
            [3600, lang.minute, lang.minutes, 60], // 60 minutes, 1 minute
            [86400, lang.hour, lang.hours, 3600], // 24 hours, 1 hour
            [604800, lang.day, lang.days, 86400], // 7 days, 1 day
            [2628000, lang.week, lang.weeks, 604800], // ~1 month, 1 week
            [31536000, lang.month, lang.months, 2628000], // 1 year, ~1 month
            [Infinity, lang.year, lang.years, 31536000] // Infinity, 1 year
        ],
        isString = typeof date == 'string',
        date = isString ?
                    new Date(('' + date).replace(/-/g,"/").replace(/[TZ]/g," ")) :
                    date,
        compareTo = compareTo || new Date,
        seconds = (compareTo - date +
                        (compareTo.getTimezoneOffset() -
                            // if we received a GMT time from a string, doesn't include time zone bias
                            // if we got a date object, the time zone is built in, we need to remove it.
                            (isString ? 0 : date.getTimezoneOffset())
                        ) * 60000
                    ) / 1000,
        token;

    if(seconds < 0) {
        seconds = Math.abs(seconds);
        token = lang.from ? ' ' + lang.from : '';
    } else {
        token = lang.ago ? ' ' + lang.ago : '';
    }

    /*
     * 0 seconds && < 60 seconds        Now
     * 60 seconds                       1 Minute
     * > 60 seconds && < 60 minutes     X Minutes
     * 60 minutes                       1 Hour
     * > 60 minutes && < 24 hours       X Hours
     * 24 hours                         1 Day
     * > 24 hours && < 7 days           X Days
     * 7 days                           1 Week
     * > 7 days && < ~ 1 Month          X Weeks
     * ~ 1 Month                        1 Month
     * > ~ 1 Month && < 1 Year          X Months
     * 1 Year                           1 Year
     * > 1 Year                         X Years
     *
     * Single units are +10%. 1 Year shows first at 1 Year + 10%
     */

    function normalize(val, single)
    {
        var margin = 0.1;
        if(val >= single && val <= single * (1+margin)) {
            return single;
        }
        return val;
    }

    for(var i = 0, format = formats[0]; formats[i]; format = formats[++i]) {
        if(seconds < format[0]) {
            if(i === 0) {
                // Now
                return format[1];
            }

            var val = Math.ceil(normalize(seconds, format[3]) / (format[3]));
            return val +
                    ' ' +
                    (val != 1 ? format[2] : format[1]) +
                    (i > 0 ? token : '');
        }
    }
};

if(typeof jQuery != 'undefined') {
    jQuery.fn.humaneDates = function(options)
    {
        var settings = jQuery.extend({
            'lowercase': false
        }, options);

        return this.each(function()
        {
            var $t = jQuery(this),
                date = $t.attr('datetime') || $t.attr('title');

            date = humaneDate(date);

            if(date && settings['lowercase']) {
                date = date.toLowerCase();
            }

            if(date && $t.html() != date) {
                // don't modify the dom if we don't have to
                $t.html(date);
            }
        });
    };
}
function prettyDate(date, startDate) {
  var secs = Math.floor((date.getTime() - startDate.getTime()) / 1000);
  if (secs < 60) return secs + " sec(s) ago";
  if (secs < 3600) return Math.floor(secs / 60) + " min(s) ago";
  if (secs < 86400) return Math.floor(secs / 3600) + " hour(s) ago";
  if (secs < 604800) return Math.floor(secs / 86400) + " day(s) ago";
  return date.toDateString();
}