こんにちは。
現在さくらのクラウドでwordpressのネットサービスを作成しているのですが、同じサーバーのnode.jsで作成しているシステムとの連携を行っております。
本来であれば中国でリリースするため、中国のサーバーで行いたかったのですが、諸事情につき日本のさくらのクラウドで行っております。
そこで問題が起こったのは、wordpress側でDBの操作を行う際はwordpressのダッシュボードのタイムゾーンから中国の現在時間で処理を行えるのですが、node.jsからDB操作を行う場合、サーバーが日本側なので日本時間での更新となりどうしても1時間の時差の誤差が出てしまいます。
今後、サーバーを移行して中国に置く可能性もあり、不用意に移動時のnode.jsの書き換えは極力減らしたいため、node.js側でごり押しで時間を1時間ずらしてから処理をすることを可能な限り避けたいと思っております。
なので【node.jsでwordpressのダッシュボードのタイムゾーン設定を基準に現在時間取得】を行いたいと思っております。
1つ目の案としてはrequestモジュールを使ってwordpress内に作成したphpファイルを起動して取得する方法(一応テストでローカルでのテストでpluginディレクトリ内に新しくtimezone_response.phpファイルを作成)
javascript
1//node.js側のコード(wordpressから現在時刻をwordpressのタイムゾーン設定基準で呼び出す) 2 3var request = require('request'); 4 5exports.timezone_test01 = function(){ 6 7 var setting = 'WP' 8 //POST送信オブジェクト生成 9 var options = { 10 uri: 'http://localhost/wordpress/wp-content/plugins/timezone_response.php', 11 form: {setting:setting}, 12 json: true 13 }; 14 15 //送信&レスポンス確認 16 request.post(options, function(error, response, body){ 17 if (!error && response.statusCode == 200) { 18 console.log(response); 19 } else { 20 console.log('error: '+ response.statusCode); 21 } 22 23 }); 24}; 25
php
1if(isset($_POST['setting'])){ 2 if($_POST['setting']='WP'){ 3 $now_time = date_i18n("Y-m-d H:i:s"); 4 echo json_encode($now_time); 5 } 6};
と、さっくり作ってみたところ案の定404エラーをnode.jsが吐き出す結果に。
すこし調べてみるとchild_processモジュールが使えるのではないかと思ったのですが、node.js自体まだ経験が浅いのでマニュアルを見てもよくわからず仕舞いでした。
もし、何か良い方法などがあればご教授いただければと思います、どうかよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。