テーブル内の日付けフィールドの表示を変更したいです。

お世話になっております。

テーブル(フィールドコード→birthday)の中にある、日付けフィールド(フィールドコード→day)の表示を2022-08-26から8月26日と表示するよう下記のコードを書いていましたがうまく動きません。ご指導ご鞭撻頂けたらと思い投稿させていただきました。何卒よろしくお願い致します。

 

jQuery.noConflict();
(function($) {
 “use strict”;
 kintone.events.on(“app.record.detail.show”, function(event) {
 var record = event.record;
 if (record[‘birthday’][‘day’][‘value’]) {
 var MD = moment(record[‘birthday’][‘day’][‘value’]).format(‘M月D日’);
 var ele1 = kintone.app.record.getFieldElement(‘day’);
 $(ele1).find(‘span’).text(MD);
 }
 return event;
 });
 kintone.events.on(“app.record.index.show”, function(event) {
 var ele1 = kintone.app.getFieldElements(‘day’);
 if (ele1) {
 for (var i = 0; i < ele1.length; i++) {
 var date = $(ele1[i]).find(‘span’).text();
 if (date) {
 var MD = moment(date).format(‘M月D日’);
 $(ele1[i]).find(‘span’).text(MD);
 }
 }
 }
 return event;
 });
})(jQuery);

 

 

 

おもち様

プログラムが動かないときは,開発者ツールを使うとエラーの内容がわかるので,
エラーの内容を合わせて提示してもらえると,回答が付きやすいと思います.
chrome:右上の「︙」→その他ツール→デベロッパーツール
(画面下にいくつか)項目があるので「Console」をクリックする
Edge:右上の「…」→その他ツール→開発者ツール
(画面上に「コンソール」があるのでクリックする)

問題箇所ですが,

record['birthday']['day']['value']

birthdayがテーブルとのことなので,上記のような取得の仕方ではなく,ループ処理が必要と思います.

record['birthday'].value.forEach((row) => {
if(row.value[day].value){
  //日付の書式を変更するコード
}
});

また,moment.jsはkintoneでは現在推奨されていません.代替としてluxonが提案されているので,併せて検討いただくのが良いかと思います.
<参考>
kintoneにおけるテーブル操作の基本(行の追加・更新・削除)
Cybozu CDN(moment.js,luxonについての記載があります)

TO様

開発者ツールとコード記載ありがとうございました。

まだ解決できていないですが調べながらコード書いてみます!

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。