小喵環境中,年月日時分秒是以14位數的文字來存放,當要展現時,要轉換為正常的日期時間格式。在 Angular 2 中可以透過 pipe 來處理。
緣起
小喵環境中,年月日時分秒是以14位數的文字來存放,當要展現時,要轉換為正常的日期時間格式。在 Angular 2 中可以透過 pipe 來處理。
例如: 20170419135912這樣的格式,小喵撰寫一個「DatetimeFormat」的pipe那麼就可以如下的處理
<span>{{'20170419140512'|DatetimeFormat}}</span>
撰寫Pipe
首先,新增一個檔案,名為「DatetimeFormat.pipe.ts」,要:
- import Pipe, PipeTransform
 - @Pipe給予名稱
 - implements PipeTransform
 - 一個 transform 的 function,傳入value,回傳string
 
其內容如下:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
  name: 'DatetimeFormat'
})
export class DatetimeFormatPipe implements PipeTransform {
  transform(value: string): string {
  	let rc:string='';
    if(value!=''){
      switch(value.length){
        case 8:
          rc = value.substr(0,4) + '/' + value.substr(4,2) + '/' + value.substr(6,2);
          break;
        case 12:
          rc = value.substr(0,4) + '/' + value.substr(4,2) + '/' + value.substr(6,2);
          rc += ' ' + value.substr(8,2) + ':' + value.substr(10,2);
          break;
        case 14:
          rc = value.substr(0,4) + '/' + value.substr(4,2) + '/' + value.substr(6,2);
          rc += ' ' + value.substr(8,2) + ':' + value.substr(10,2) + ':' +value.substr(12,2);
          break;
      }
    }
  	return rc;
  }
}
宣告Pipe在AppModule中
在「app.module.ts」中的「declarations」中,要把剛剛寫好的Pipe宣告進去,如下:
import { DatetimeFormatPipe } from './DatetimeFormat.pipe';
'...
@NgModule({
  declarations: [
    AppComponent,
    '...,
    DatetimeFormatPipe
  ],
  '...
})
export class AppModule { }
就醬子,很簡單,就完成囉
測試使用
在 app.component.html 中,我們加上以下的測試語法
<span>{{'20170419140512'|DatetimeFormat}}</span>
得到結果如下:
2017/04/19 14:05:12
小喵自己筆記,提供後續參考
^_^
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
 - 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
 
| Microsoft MVP Visual Studio and Development Technologies (2005~2019/6)  | topcat Blog:http://www.dotblogs.com.tw/topcat  |