2016-03-24 3 views
0
import moment from 'moment'; 

export class DateTimeFormat { 
    format(date, time) { 
     alert(date); 

     return moment(date + 'T' + time, 'DD/MM/YYYY HH:mm:ss'); 
    } 
} 

「日」に2つの文字列を変換することはできませんカスタム要素内で使用されます。無効な日付 moment.utc(日付)失敗 - - (日付) 瞬間無効な日付を

私はない失敗:。

  .ensure('baseContent.ValidFromDate', (config) => { config.computedFrom(['baseContent.ValidFromDate', 'baseContent.ValidFromTime', 'baseContent.ValidToDate', 'baseContent.ValidToTime']) }) 
       .if(() => { 
        return this.baseContent.ValidFromDate !== null && this.baseContent.ValidFromTime !== null && this.baseContent.ValidToDate !== null && this.baseContent.ValidToTime !== null }) 
        .passes(() => { return this.datetimeformat.format(this.baseContent.ValidFromDate, this.baseContent.ValidFromTime) < this.datetimeformat.format(this.baseContent.ValidToDate, this.baseContent.ValidToTime) }) 
        .withMessage('< Valid To') 
       .endIf() 

は、私が試してみました:

DateTimeFormatは次のように使用されています私はtry catchを追加する必要があるかどうかを知っていますか?私は試して、日付オブジェクトから変換する場合は、キャッチ内に落ちる場合は、dbなどの文字列でなければならない?私が追加した以下の@VicenzoCからの情報を使用して

AN if文

var dateFormatted; 

if (typeof(date) === 'string') 
{ 
    dateFormatted = date; 
} 
else 
{ 
    // Must be an object from a calendar etc 
    alert(date); 
    dateFormatted = moment(date, 'DD/MM/YYYY'); 
    alert(dateFormatted); 
} 

return moment(date + 'T' + time, 'DD/MM/YYYY HH:mm:ss'); 

まず警告 -

enter image description here

セカンド警告 -

enter image description here

答えて

1

それはそうです私にはy私たちの.datepicker('getUTCDate')は、Dateオブジェクトを返します。この場合には、あなたは、文字列を持っている場合は、使用してそれを解析することができますちょうどmoment(Date);

this.value = $('.input-group.date', this.element).datepicker('getUTCDate'); 
var momentObj = moment(this.value); 

を使用してmomentオブジェクトにそれを解析することができます:それは1である場合

momentオブジェクトを取得したら、日付をカスタム形式で表示する必要がある場合はformatメソッドを使用できます。

+0

ありがとう@VicenzoC、ページが最初に読み込まれるとき、データはdbから引き出され、カレンダーから選択されたときにのみ 'DD/MM/YYYY'のように出てきます。私はtry/catchステートメントのようなことをするのが一番ですか? –

+0

@ VicenzoC - 正しく説明しているとは思わないので、私の質問を更新しました。 –

+0

@ClareBarrington多分あなたは['typeof'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof)演算子を使って入力変数の型を決定し、次にモーメントを呼び出すことができます適切な解析機能。 – VincenzoC

0
import moment from 'moment'; 

export class DateTimeFormat { 
    format(date, time) { 

     var dateFormatted; 

     if (typeof(date) === 'string') 
     { 
      dateFormatted = date; 
     } 
     else 
     { 
      // Must be an object from a calendar etc 
      dateFormatted = moment(date).format('DD/MM/YYYY'); 
     } 

     return moment(dateFormatted + 'T' + time, 'DD/MM/YYYY HH:mm:ss'); 
    } 
} 

これは私が最初に(その方向に私を指してくれてありがとう、再び@VicenzoCが)、私はif文の中に日付部分を扱うのtypeofを決定し、最終的なコードです。

関連する問題