SlideShare a Scribd company logo
1 of 17
Download to read offline
Reactにおける
DatePickerとmoment
2017年10⽉25⽇
有限会社バーチャルテクノロジー
森下⼤貴
DatePickerとは
フォームをクリックするとカレンダーが表示され、
日付を選択すると、選択した日付がフォームに入力され
るコンポーネント
DatePickerを使うためには
ターミナルでインストールする
npm install react-bootstrap-date-picker
以下の2つをImportする
import DatePicker from 'react-datepickerʼ
import 'react-datepicker/dist/react-datepicker.cssʼ
DatePickerの使い方
DatePickerの考慮点 日付の表示
(⽉/⽇/年)で表⽰されるので
ちょっとわかりにくい
DatePickerの考慮点 初期値について①
初期値はどうやって設定するか
this.state = { sample: ʻ ʼ }
だと初期は空っぽで表⽰されてしまう
DatePickerの考慮点2 初期値について②
this.state = {sample: ʼ2017/10/19ʻ}
momentとは
momentは時刻をmomentオブジェクトで取得する
コンポーネント(⾼機能なDateオブジェクトのようなもの)
何も渡さずに⾏うとmoment型で現在の時刻を返す。
UTCミリ秒を渡した場合は、moment型に変換して返す。
(この場合は2017年10⽉18⽇)
・UTCミリ秒は1970年1⽉1⽇00:00:00から経過した時間をミリ秒単位で表した数値
momentを使うためには
以下をimportする
import moment from 'moment'
DatePickerはmomentオブジェクトの設定に従って動作する
日付の表示を変更 moment.locale('ja')
Import moment from ʻmomentʼ と⼀緒に
moment.locale(ʻjaʼ)と書く。
(⽉/⽇/年) (年/⽉/⽇)
初期値はmomentでセットする
moment()で
this.state = { sample: moment() }
現在の⽇付をセット出来る。
サーバーで変数を送受信する時の注意点
クライアント サーバー
①⽂字列に変換してから渡す
②オブジェクトに変換して渡す
①サーバー送信時に値を文字列に変換する
DatePicker⽤の変数をそのままサーバーに送信すると
2017-10-19T06:22:20.440Z ISO形式で送信される。
形式を変えたければ送信前に
format()で変換してから送信する
sample.format(ʼYYYY/MM/DDʼ) → 2017/10/19
②フォーマットしたデータを読み込んで
DatePickerに渡す場合
DatePickerに⽂字列(2017/10/19)を渡すとエラーになる
DatePickerが理解できる形にしてやる必要がある
Date.parseとmoment()を使う
1:Date.parseに⽂字列を渡して、UTCミリ秒に変換する。
2:変換したUTCミリ秒をmoment()に渡す。
moment(Date.parse(ʻ2017/10/19ʼ))
まとめ
• DatePickerのコンポーネントに値を渡す時は、
momentオブジェクトに変換する必要がある。
• サーバーに送信する時は、⽂字列に変換する必要がある。

More Related Content

More from Shinichiro Takezaki (13)

React vtecx20170920
React vtecx20170920React vtecx20170920
React vtecx20170920
 
React vtecx20170822
React vtecx20170822React vtecx20170822
React vtecx20170822
 
Builderscon Tokyo 2017
Builderscon Tokyo 2017 Builderscon Tokyo 2017
Builderscon Tokyo 2017
 
Enterpriseapi20160210
Enterpriseapi20160210Enterpriseapi20160210
Enterpriseapi20160210
 
Vtecx20151216 2
Vtecx20151216 2Vtecx20151216 2
Vtecx20151216 2
 
Vtecx20151216
Vtecx20151216Vtecx20151216
Vtecx20151216
 
Vtecxlt20151201
Vtecxlt20151201Vtecxlt20151201
Vtecxlt20151201
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
No nosql20130424
No nosql20130424No nosql20130424
No nosql20130424
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Gaeja20121130
Gaeja20121130Gaeja20121130
Gaeja20121130
 
Reflex works20120818 1
Reflex works20120818 1Reflex works20120818 1
Reflex works20120818 1
 
Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 

20171025 date picker説明資料