我有一个RSS Feed我使用FeedRoll来创建它我将它通过xslt拉入我的网站。我的问题是通过javascript进行格式化我必须创建格式化我的日期看起来不像:
2013年12月4日05:00:00
,而不是:
2013年12月4日下午5:00
FeedRoll提供的脚本是:
<script language="JavaScript" src="http://www.feedroll.com/rssviewer/feed2js.php?
src=http%3A%2F%2Frss.cnn.com%2Frss%2Fcnn_topstories.rss&num=5&date=y&tz=+n/-
n/'feed'&utf=y" charset="UTF-8" type="text/javascript"></script>
显示如下:
看起来这个特定的Feed是由php驱动的,偏移量设置为:+ n / -n /'feed'但这对我来说没什么意义。 我如何让这个月缩短为零对齐,就像我正在寻找的那样?
我假设Javascript是最简单的方法...逻辑上我被卡住了。
****更新****(这是我的样式表的样子):
<xsl:template name="news_feed">
<script language="JavaScript" src="{RSSSrc}" charset="UTF-8"
type="text/javascript"></script>
</xsl:template>
<xsl:template match="NewsPage">
<div class="news-block">
<div class="holder">
Image goes here...
<div class="section">
<dl>
<xsl:call-template name="news_feed"/>
</dl>
</div>
</div>
</div>
</xsl:template>
答案 0 :(得分:2)
Google很快就可以说Feedroll仅为日期提供此格式。 (可选择设置自定义时区)
如果您真的反对这一点,那么您所能做的就是设置一个onload函数,该函数获取类rss-date
的所有元素,然后将innerText
解析为Date对象。然后再将其输出为您选择的日期格式。
编辑:这是javascript中使用jquery的实现。
最困难的部分甚至不是选择和解析。但实际上只是将字符串格式化为您想要的。如果您不喜欢使用它,只需少量工作就可以去除所有jquery。
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type='text/javascript'>
function myFormat(dateTime) {
var months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
var dateString = months[dateTime.getMonth()] + ' ' + dateTime.getDate() + ', ' + dateTime.getFullYear();
var timeString;
if (dateTime.getHours() == 0)
timeString = "12:" + (dateTime.getMinutes()<10?"0"+dateTime.getMinutes():dateTime.getMinutes()) + "AM";
else if (dateTime.getHours() < 12)
timeString = dateTime.getHours() + ":" + (dateTime.getMinutes()<10?"0"+dateTime.getMinutes():dateTime.getMinutes()) + "AM";
else if (dateTime.getHours() == 12)
timeString = "12:" + (dateTime.getMinutes()<10?"0"+dateTime.getMinutes():dateTime.getMinutes()) + "PM";
else
timeString = (dateTime.getHours()-12) + ":" + (dateTime.getMinutes()<10?"0"+dateTime.getMinutes():dateTime.getMinutes()) + "PM";
return dateString + ' ' + timeString;
}
$(document).ready(function() {$('.rss-date').each(function() {$(this).text(myFormat(new Date($(this).text())));});});
</script>