JavaScript の質問用スレッド vol.126 (307レス)
前次1-
抽出解除 レス栞 あぼーん

6: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:33:48.20 ID:ngtmyS7f0(1/6) AAS
前スレで日付変換の関数で質問していた者です。

開発環境としましては、AndroidのmementoというDBを制御するために、Javascriptの使用が可能なので、試しに勉強してみようと思った次第です。

コードエディターや>>2
2(3): デフォルトの名無しさん (オッペケ Sre1-tek/ [126.254.232.20]) [sage] 2023/12/09(土) 17:41:59.25 ID:Mnb70srnr(2/5) AAS
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 外部リンク:plnkr.co 外部リンク:jsbin.com 外部リンク:jsfiddle.net 外部リンク:ideone.com

■次スレの立て方
本文一行目に「!extend:checked:vvvvvv:1000:512」と書いて、>>1-5のテンプレの「前スレ」「関連スレ」を最新化して立ててください。

■JavaScriptスレの現状
元々はWeb制作板が本スレでしたが、ライブラリ信者に荒らされ、プログラム板に避難所として本スレが立てられました。
Web制作板の本スレは荒らされてから次スレが立っておらず、重複スレの消化のみとなっています。
実質的に本スレは存在しない為、質問者はWeb制作板、ブログラム板のどちらのスレで質問しても問題ありません。
記載のサイトでは正常動作をしていることから、開発環境に問題があると判断しました。ただそうなるとDBと合わせて使用できるメリットが無くなるので代替手段を模索しているところです。

成功例(日時が2つ表示)
画像リンク


失敗例
(consolelogに対応しないため、コメントアウトしていますが、関数が結果に出力される。何も表示されないはず。)
画像リンク


コードエディター
外部リンク[code]:play.google.com

memento
外部リンク:play.google.com
7: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:34:26.85 ID:ngtmyS7f0(2/6) AAS
const date1 = new Date('2021/01/01')
const date2 = new Date('2022/02/02')
const stDate = dateToYyyymmdd(date1);
const stTime = timeToHhmm(date1);
const edDate = dateToYyyymmdd(date2);
const edTime = timeToHhmm(date2);

console.log(stDate + stTime + " " + edDate + edTime)
8: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:34:43.88 ID:ngtmyS7f0(3/6) AAS
// DateをYYYY/MM/DD文字列に変換する
function dateToYyyymmdd(date){

let n = date.getFullYear().toString();
n = date.getFullYear().toString() + "/";
n +=
(date.getMonth()+1).toString().padStart(2, "0") + "/";
n +=
date.getDate().toString().padStart(2, "0") + "_";
return(n);
}
9: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:35:00.00 ID:ngtmyS7f0(4/6) AAS
// DateをHH:MM文字列に変換する
function timeToHhmm(time){
let n = time.getHours().toString().padStart(2, "0") + ":";
n += time.getMinutes().toString().padStart(2, "0");
return(n);
}
10
(2): デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 16:35:52.81 ID:ngtmyS7f0(5/6) AAS
申し訳有りません。
サービスでの稼働は確認出来たのですが、共有方法が分からないので、連投になってしまいましたが、直接描かせていただきました。
13: デフォルトの名無しさん (ワッチョイ 5510-yLTa [222.230.65.145]) [sage] 2023/12/10(日) 21:02:11.63 ID:ngtmyS7f0(6/6) AAS
>>11,12
11(1): デフォルトの名無しさん (アウアウウー Sa49-+EJW [106.155.27.178]) [sage] 2023/12/10(日) 17:01:43.23 ID:013bN9IEa(1) AAS
>>10
よくわからんけどそもそもその環境は関数定義して呼び出すとかできるの?
全体を関数として扱って最後の戻り値を文字列として解釈してるとかそういうノリではなく?
12(1): デフォルトの名無しさん (ワッチョイ ed27-tek/ [2400:2200:6f2:ad4b:*]) [sage] 2023/12/10(日) 17:01:58.34 ID:uEdCnVbW0(1) AAS
>>10
外部リンク:wiki.mementodatabase.com
>but only the result of the last operation will be entered into the field.
とあるから最後の文の値が結果値として採用される
だからtimeToHhmm関数自体が結果になっている

修正したければコードの最後に
const result = stDate + stTime + " " + edDate + edTime
などと追加すればその値が結果値として採用されるんではないだろうか
まさに仰るとおりでございました。
最後に出力文を置くことで正しく稼働を確認できました。
改めて調べようが足らなかったことを痛感しました。正直自分の中に『これ、なんかバグってるのかな…』などと考えてしまってた所もありましたが、単に仕様であったことに恥ずかしさとプラットフォーム開発者に申し訳ないですね。
wikiもしっかり読み込んで改めて勉強しなおしてみます。
本当にありがとうございます。
長々と失礼しました。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.960s*