Google feed API日期为HTML5 DateTime
-
25-10-2019 - |
题
这 Google Feed API 以格式输出发布日期:“ 2007年4月13日12:40:07 -0700”。
我希望将其更改为有效的HTML5u003Ctime datetime="YYYY-MM-DDThh:mm:ssTZD">使用JS/jQuery。
有简单的方法吗?还是图书馆?
解决方案 3
最后我使用了 格式化()函数在此处找到. 。较新的JS工具箱似乎没有保留此功能(或至少没有使其显而易见)。
var entryDate = new Date(entry.publishedDate); // From Google Feed API
html5date = formatDate(entryDate,'yyyy-MM-ddThh:mm:ss')+entryDate.toString().slice(28,33);
切片是要获得时区,格式化似乎不支持。
这是缩小功能,用于保存:
/*
* Author: Matt Kruse <matt@mattkruse.com>
* http://www.mattkruse.com/
* formatDate (date_object, format)
* Returns a date in the output format specified.
* The format string uses the same abbreviations as in getDateFromFormat()
*/
var MONTH_NAMES="January,February,March,April,May,June,July,August,September,October,November,December,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec".split(","),DAY_NAMES="Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sun,Mon,Tue,Wed,Thu,Fri,Sat".split(",");function LZ(b){return(0>b||9<b?"":"0")+b} function formatDate(b,f){var f=f+"",h="",g=0,e="",c="",e=b.getYear()+"",c=b.getMonth()+1,i=b.getDate(),j=b.getDay(),d=b.getHours(),k=b.getMinutes(),l=b.getSeconds(),a={};4>e.length&&(e=""+(e-0+1900));a.y=""+e;a.yyyy=e;a.yy=e.substring(2,4);a.M=c;a.MM=LZ(c);a.MMM=MONTH_NAMES[c-1];a.NNN=MONTH_NAMES[c+11];a.d=i;a.dd=LZ(i);a.E=DAY_NAMES[j+7];a.EE=DAY_NAMES[j];a.H=d;a.HH=LZ(d);a.h=0==d?12:12<d?d-12:d;a.hh=LZ(a.h);a.K=11<d?d-12:d;a.k=d+1;a.KK=LZ(a.K);a.kk=LZ(a.k);a.a=11<d?"PM":"AM";a.m=k;a.mm=LZ(k);a.s= l;for(a.ss=LZ(l);g<f.length;){e=f.charAt(g);for(c="";f.charAt(g)==e&&g<f.length;)c+=f.charAt(g++);h=null!=a[c]?h+a[c]:h+c}return h};
其他提示
查看 JavaScript日期格式. 。 (下载 这里。)然后很容易:
var input = "13 Apr 2007 12:40:07 -0700";
var date = Date.parse(input);
var output = dateFormat(date, 'yyyy-mm-dd"T"hh:MM:ssoD');
// output == 2007-04-13T12:40:07-0700D
演示在这里: http://jsfiddle.net/pkc3s/2/
我通过扩展日期对象在纯JavaScript中为您启动了解决方案。但是,我现在必须跑步。
Date.prototype.getHtml5String = function(){
return this.getFullYear() + "-" + this.getMonth() + "-" + this.getDay() + "T" + this.getHours() + ":" + this.getMinutes() + ":" + this.getSeconds() + "TZ" + this.getTimezoneOffset();
};
var d = new Date( "13 Apr 2007 12:40:07 -0700" );
alert( d.getHtml5String() );
也许您可以完成(或者我今天的某个时候)。
希望有帮助...
不隶属于 StackOverflow