我为Angular完成了新手。所以我有created_at的日期值。
2008-04-25 00:00:00
我希望每个月只用英语获得这一天。我已经尝试了以下方法来制作样本以获得单独的年份。但过滤器似乎不起作用。我做错了什么?
<h2>Recent Study</h2>
<ul ng-repeat="x in names">
<li>
<div class="date">
<span class="day">{{ x.created_at | date : 'yyyy' }}</span>
<span class="month">Jul</span>
</div>
<p><a href="#">{{ x.study_description }}</a></p>
</li>
</ul>
答案 0 :(得分:8)
您需要将日期转换为秒,并使用过滤器:
app.filter('toSec', function($filter) {
return function(input) {
var result = new Date(input).getTime();
return result || '';
};
});
并在您的HTML中使用它:
{{ '2008-04-25 00:00:00' | toSec | date:'EEEE'}}
结果:
Friday
Angular为您提供了创建Custome Filter
的选项这是一个有效的example,可以使用客户过滤器实现您的需求。
答案 1 :(得分:1)
created_at的格式不兼容。
格式化为Date对象,毫秒(字符串或数字)或各种ISO 8601日期时间字符串格式的日期(例如yyyy-MM-ddTHH:mm:ss.sssZ及其较短版本,如yyyy-MM-ddTHH:mmZ, yyyy-MM-dd或yyyyMMddTHHmmssZ)。如果字符串输入中未指定时区,则认为时间在本地时区。
引自https://docs.angularjs.org/api/ng/filter/date
例如&#34; 2008-04-25T00:00:00&#34;会工作的。
答案 2 :(得分:1)
我希望您的输入作为时间戳,在您的代码中只需更改过滤器即可获得唯一的一天
<h2>Recent Study</h2>
<ul ng-repeat="x in names">
<li>
<div class="date">
<!-- getting only day -->
<span class="day">{{ x.created_at | date:'dd '}}</span>
<!-- getting month name and day only -->
<span class="month">{{ x.created_at | date:'MMM-dd '}}</span>
</div>
<p><a href="#">{{ x.study_description }}</a></p>
</li>
</ul>
此处date:'dd '
给出了每月的日期,填充(01-31)和
date:'MMM-dd ' gives Month in year (Jan-Dec) and above day in month.
答案 3 :(得分:0)
我找到了答案。问题很简单。我们应该将mysql日期时间转换为javascript日期时间,然后才能在javascript中格式化它。
所以我的格式是:2008-04-25 00:00:00
app.filter('format', function () {
return function (item) {
var t = item.split(/[- :]/);
var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
var time=d.getTime();
return time;
};
});
我已经将mysql转换为javascript然后转换为毫秒,然后应用我的过滤器工作。这可能效率不高。它工作得很好。希望这有助于某人。
所以我的HTML:
<li ng-repeat="x in names">
<div class="date">
<span class="day">{{ x.created_at | format | date:'d'}}</span>
<span class="month">{{ x.created_at | format | date:'MMM'}}</span>
</div>
<p><a href="#">{{ x.study_description | makeUppercase}}</a></p>
</li>
工作正常。 @Nishanth答案给了我不确定的。我赞成它,因为它似乎对一些人来说很好。日期格式支持也因浏览器工具而异。