トップページ > プログラム > 2016年02月10日 > KVydSgEF

書き込み順位&時間帯一覧

17 位/196 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000111010000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
794
+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net

書き込みレス一覧

+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
794 :デフォルトの名無しさん[sage]:2016/02/10(水) 10:43:55.73 ID:KVydSgEF
データベースのテーブルで「Date」型を使ってまして
2014-11-15
などと値が入ってます
これ、JavaScriptに渡ると
2014-11-15T00:00:00.000Z
UTC形式になっちゃうわけですよ。表示はまだいい。

HTML5のDateでもAngular bootstrap UIのDatePickerでも
2014-11-10
と変えてデータベースに書き込むと、そのときの書き込む値は
2014-11-09T15:00:00.000Z
と日本ローカルタイム2014-11-10 0:00をUTC変換した値になり
データベースには「2014-11-09」が書き込まれてしまう
想定した「2014-11-10」が書けないんですわwww

ぼすけてwww
スマートな解決求むorz
+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
795 :794[sage]:2016/02/10(水) 11:35:08.49 ID:KVydSgEF
getTimezoneOffset()
は使いましたが、検索の開始日付けに使う
→検索実行時に、日本なら-(-540分)する。おkおk
→複数回検索すると、日付けが9時間ずつズレていく
という失敗しています
+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
797 :794[sage]:2016/02/10(水) 12:15:44.12 ID:KVydSgEF
>>796
DBはPostgreSQL、他にも使われてるのでtimestamptz型への変更は無理です
根本的に、JavaScriptのDate型はUTC秒数であって日付けじゃないのが原因なわけですが

書き込み一回だけ使うならば
getTimezoneOffset = -540 (日本) を使い、
表示2014-11-10
内部2014-11-09T15:00:00Z
- (-540) = 2014-11-10T00:00:00Z
として書き込めば出来ます

しかしDOMで持ってる値を操作してしまうと、すでに操作済みなのかまだ操作してないのかも管理しないといけない
(画面によっては複数回生きてるものがある、検索用とか)

文字列に変換してサーバ側に渡すのはコントローラのコードが煩雑過ぎる

どうするんや!となってます
+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
801 :794[sage]:2016/02/10(水) 14:03:06.19 ID:KVydSgEF
>>798
読みはAngularで、
$scope.oneOrder = ServiceOrders.get({ repairID: selectedID });
とか。修理オーダーに受付日付などが入っておるわけで

書き込みもAngularで、

dt = $scope.oneOrder.AcceptedDate;
dt.setMinutes(dt.getMinutes() - dt.getTimezoneOffset());
ServiceOrders.update($scope.oneOrder, $scope.onrefresh);
//複数回使うなら以下も必要
dt.setMinutes(dt.getMinutes() + dt.getTimezoneOffset());

ServiceOrdersはAngularの$resource(AJAX)で、JSON REST APIです
getで返って来るのはもちろん文字列で、
"AcceptedDate": "2014/11/15",
DBにもこう入ってます
日付が出てくるたんびにマイナスしてプラスして、はダサ過ぎると思うわけですよ
799さんの言うように文字列で扱う専用のディレクティブ作るしかないんやろか


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。