以角度2显示当前日期的正确格式

时间:2016-12-19 08:08:04

标签: mongodb angular typescript

我想以正确的格式显示当前日期 例如:2016年12月19日。 现在我正在使用Date.now()。但它显示垃圾值,我想只显示日期。 我也使用管道,但管道不与数据库绑定。现在我使用formcontrol,它使用Date.now()获取当前日期。后来我必须在网格中用html显示这个日期。 我目前的代码是。 Date.js文件:

var mongoose = require('mongoose');
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;

PurchaseOrderSchema = new Schema({
   PurchaseOrderNo: {
    type: Number,
    required: true,
    index: {
    unique: true
    }
   },
   Status:String,
   OrderDate: {
    type: Date,
    "default": Date.now()
  }

}


{ collection: 'PurchaseOrder' });

PurchaseOrderSchema.set('toObject', { getters: true });
PurchaseOrderSchema.set('toJSON', { getters: true });

PurchaseOrderSchema.virtual('locationname').get(function() {  
    return this.Locations[0].ParentId.LocationName;
});
PurchaseOrderSchema.virtual('Tempvendor').get(function() {  
    return this.Vendors[0].ParentId.VendorName;
});


PurchaseOrderSchema.statics.delete_by_name = function(name, cb_succ, cb_fail) {};
var PurchaseOrder = mongoose.model('PurchaseOrder', PurchaseOrderSchema);

module.exports = PurchaseOrder;

newpurchaseorder.ts file:
export class NewPurchaseOrderComponent implements OnInit {
  private PurchaseOrderNo = new FormControl("", Validators.required);  
private OrderDate = new FormControl("");
   this.OrderDate=Date.now();
 ngOnInit() {

    this.addClassForm = this.formBuilder.group({
            PurchaseOrderNo:this.PurchaseOrderNo,
            OrderDate: this.OrderDate,

            });
 }
}

newpurchageorder.html file:
<section class="page-form-ele page">
  <section class="panel panel-default">
    <div class="panel-heading"><span class="glyphicon glyphicon-th"></span>Purchase Order</div>
    <div class="panel-body" data-ng-controller="TabsDemoCtrl">
      <div class="row">
        <div class="col-sm-12">
          <div class="heading-container">
            <div class="row">
              <div class="col-sm-6 margin-top-13">
                <h3 class="h3-color">New Purchase Order</h3>
              </div>
              <div class="col-sm-6" align="right">

                <form class="form-horizontal margin-bottom-0 margin-top-6" [formGroup]="addClassForm" (ngSubmit)="submitAdd()" role="form">
<div class="form-group">
  <label for="inputEmail3" class="col-sm-2 control-label">Date:</label>
                          <div class="col-sm-4">
                            <input type="number" class="form-control" [(ngModel)]="OrderDate"  id="orderdate" placeholder="Order Date..." formControlName="OrderDate" required readonly="true" >
                          </div>
  </div>                     

                        </div>
</div>
</form>
</section>

1 个答案:

答案 0 :(得分:1)

服务器端通常会生成一个带有ISO8601日期2016-12-19或unix时间戳1482140260

的json响应

当它通过电线发送到角度时,它不是日期。它是一个字符串或一个需要转换为javascript日期的数字。

这是因为json标准不会自动反序列化日期。

您需要手动执行此操作。

this.http.get('/api/mydata')
  // Convert to json first
  .map(r => r.json())
  // Convert the items dates to javascript dates
  .map(items => {
    // Loop over the javascript array and convert the dates...
    items.forEach(i => {
      // before parse
      // i.date = '2016-12-19';
      i.date = new Date(i.date);
      // i.date now is a correct javascript Date object
    });
    return items;
  })