AngularJs过滤sql时间戳“yyyy-MM-dd HH:mm:ss”到别的东西

时间:2014-03-14 15:29:59

标签: angularjs

我已经尝试了{{someDate |的角度文档date:'params'}};如果someDate的格式为yyyy-MM-dd HH:mm:ss,则不起作用。

我如何使用angularjs转换yyyy-MM-dd HH:mm:ss说yyyy。

4 个答案:

答案 0 :(得分:2)

日期过滤器旨在处理multiple input types,包括日期对象和常用日期字符串。如果提供的日期过滤器无法识别您的日期字符串,我只会编写自己的过滤器。它看起来像这样......

myapp.filter('toYear', function () {
     return function (dateString) {
         var dateObject = new Date(dateString);
         return dateObject.getFullYear();
     };
});

你可以像这样使用它......

{{someDate | toYear}}

答案 1 :(得分:0)

您可以按如下方式定义自定义格式

Date.prototype.customFormat = function(){
    return this.getMonth() + 
    "/" +  this.getDate() +
    "/" +  this.getFullYear();
}

//usage

> var d = new Date()
Fri Mar 14 2014 15:39:07 GMT+0000 (GMT Standard Time)
> d.customFormat()
'2/14/2014'

更多详情https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat

答案 2 :(得分:0)

我实际上在这里修复了解决方案:

app.filter('timestampToISO', function() {
    return function(input) {
        input = new Date(input).toISOString();
        return input;
    };
});

http://bit.ly/1iJAV8G

更新:

要实现,请将其添加到视图中:

{{someSQLTIMESTAMP | timestampToISO | date}}

答案 3 :(得分:0)

Angular js日期对象不支持直接从MySql日期格式转换为时间戳。因此,需要将其从YYYY-mm-dd H:i:s转换为YYYY/mm/dd H:i:s,然后将其转换为时间戳。

您可以尝试使用以下代码段将Mysql日期格式YYYY-mm-dd H:i:s转换为使用AngularJs过滤器的时间戳

app.filter("mysqlDateFormatToTimestamp", function(){
    return function(date){
        var date1 =  date2 = date3 = timestamp = hours = minutes = seconds = '';               
        date1 = date.split(':'); 
        date2 = date1[0].split(' '); 
        date3 = date2[0].split('-'); // Change it based on your format
        if( date1.length == 1 && date2.length == 1 ){
            hours = '00';
            minutes = '00';
            seconds = '00';
        }else{
            hours = parseInt(date2[1]);
            minutes = parseInt(date1[1]);
            seconds = parseInt(date1[2]);
        } 
        timestamp = new Date(parseInt(date3[0]), parseInt(date3[1])-1, parseInt(date3[2]), hours, minutes, seconds);
        return timestamp;
   } 
});

现在,您可以在所需的日期格式中使用此过滤器,并且可以根据需要更改参数。

   {{ '2016-07-07 05:27:30' | mysqlDateFormatToTimestamp | date:'LLLL dd, yyyy HH:mm:ss'}} 
   // results would comes like "July 07, 2016 05:27:30"

   {{ '2016-07-07 05:27:30' | mysqlDateFormatToTimestamp | date:'yyyy'}} 
   // results would comes like "2016"