Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.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
如何使用jquery/javascript转换时间/日期?_Javascript_Jquery_Time - Fatal编程技术网

如何使用jquery/javascript转换时间/日期?

如何使用jquery/javascript转换时间/日期?,javascript,jquery,time,Javascript,Jquery,Time,我现在有这个 last_modified = xhr.getResponseHeader('Last-Modified'); /* Last-Modified: Wed, 06 Apr 2011 20:47:09 GMT */ 然而,对于插件,我需要这种格式 <abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr> 2008年7月17日 什么是最简单和防弹的转换方式?看看。可能比

我现在有这个

last_modified = xhr.getResponseHeader('Last-Modified');

/* Last-Modified: Wed, 06 Apr 2011 20:47:09 GMT */
然而,对于插件,我需要这种格式

<abbr class="timeago" title="2008-07-17T09:24:17Z">July 17, 2008</abbr>
2008年7月17日
什么是最简单和防弹的转换方式?

看看。可能比你需要的多一点,但这是一个很棒的图书馆。代码应该类似于:

last_modified = xhr.getResponseHeader('Last-Modified');
last_modified_date = last_modified.split(': ')[1];
date = Date.parse(last_modified_date);
date.toString("yyyy-MM-ddTHH:mm:ssZ")
EDIT:@Hasan指出,原生日期对象能够解析标题文本。对于这个简单的任务,这可能是最好的选择。

看一看。可能比你需要的多一点,但这是一个很棒的图书馆。代码应该类似于:

last_modified = xhr.getResponseHeader('Last-Modified');
last_modified_date = last_modified.split(': ')[1];
date = Date.parse(last_modified_date);
date.toString("yyyy-MM-ddTHH:mm:ssZ")

EDIT:@Hasan指出,原生日期对象能够解析标题文本。对于这个简单的任务,这可能是最好的选择。

使用javascript进行如下尝试:

标题部分:

    var dateObj = new Date(last_modified);
    var newDate = dateObj .getFullYear() + "-" + dateObj.getMonth() + "-" + dateObj.getDate() + "T" + dateObj.getHours() + ":" + dateObj.getMinutes() + ":" + dateObj.getSeconds() + "Z"; 
关于“2008年7月17日”部分:


使用javascript尝试以下操作:

标题部分:

    var dateObj = new Date(last_modified);
    var newDate = dateObj .getFullYear() + "-" + dateObj.getMonth() + "-" + dateObj.getDate() + "T" + dateObj.getHours() + ":" + dateObj.getMinutes() + ":" + dateObj.getSeconds() + "Z"; 
关于“2008年7月17日”部分:

//有些浏览器可以以本机方式返回ISO日期字符串,但很多浏览器不能。
//有些人坚持在字符串中添加毫秒-
//“2011-04-06T20:47:09.000Z”
函数字符串(日期){
var A、T、D=新日期(日期);
如果(D){
//如果在字符串中允许毫秒,请取消注释下一行
//if(D.toISOString)返回D.toISOString();
A=[D.getUTCFullYear(),D.getUTCMonth(),D.getUTCDate(),
D.getUTCHours(),D.getUTCMinutes(),D.getUTCSeconds();
A[1]+=1;
对于(var i=0;i
//一些浏览器可以本机返回ISO日期字符串,但很多浏览器不能。
//有些人坚持在字符串中添加毫秒-
//“2011-04-06T20:47:09.000Z”
函数字符串(日期){
var A、T、D=新日期(日期);
如果(D){
//如果在字符串中允许毫秒,请取消注释下一行
//if(D.toISOString)返回D.toISOString();
A=[D.getUTCFullYear(),D.getUTCMonth(),D.getUTCDate(),
D.getUTCHours(),D.getUTCMinutes(),D.getUTCSeconds();
A[1]+=1;

对于(var i=0;我似乎忽略了原生js日期对象的一些非常酷的字符串解析功能。我认为作为构造函数参数接受的“已知”字符串格式非常有限。NicePedant注意:这很不方便,但不幸的是,ECMAScript不能保证日期解析器能够以上次修改的
使用的RFC822格式。它在所有现代浏览器中都能工作,但您可能会被更模糊的平台所困扰。@Rob:ECMAScript标准中所需的可接受字符串格式非常有限,几乎到了完全无用的地步。实际上,浏览器实现的远远超过标准d需要,尽管它们确实允许做什么和不允许做什么是可变的,而且定义得很差,这使得处理日期解析非常痛苦,以至于您常常自己(或使用库)来完成无论如何。@Hasan Fahim-在将日期转换为字符串的第一次转换中,月份必须是+1。另外,不要假设UT。看起来我忽略了本机js Date对象的一些非常酷的字符串解析功能。我认为作为构造函数参数接受的“已知”字符串格式非常有限。NicePedant注意:这很不方便但不幸的是,ECMAScript不能保证日期分析器能够以上次修改的
所使用的RFC822格式解析日期。它在所有现代浏览器中都能工作,但您可能会被更模糊的平台所困扰。@Rob:ECMAScript标准alm中所需的可接受字符串格式非常有限ost已经到了完全无用的地步。事实上,浏览器实现的功能远远超过了标准要求,尽管浏览器允许做什么和不允许做什么都是可变的,而且定义得很差,这使得处理日期解析变得非常痛苦,以至于您经常自己(或使用库)来完成无论如何。@Hasan Fahim-在将日期转换为字符串的第一次转换中,月份必须是+1。另外,不要假定为UT。