Skip to content

誕生日に月日のみ設定したい #10005

@wh1tecat-nya

Description

@wh1tecat-nya

Summary

年齢は公開してないみたいな時用の設定。
一応0001年とかにすることは出来るけど、2022歳とかになるのに違和感を感じるので・・・

Activity

GrapeApple0

GrapeApple0 commented on Feb 22, 2023

@GrapeApple0
Contributor

横から失礼します。0000年とか9999年をマジックナンバーにしてその時だけ消すっていう実装がいいのかなって思ったり
screenshot 563

ghost

ghost commented on Mar 8, 2023

@ghost

誕生日の年を隠す機能はほしいです。あと一度設定すると消せないらしいので、消せるようにもしてもらえると・・・

Sayamame-beans

Sayamame-beans commented on Dec 27, 2023

@Sayamame-beans
Member

個人的には、マジックナンバーにするよりは個別の設定としてしっかり持っているべきなような気がします…?

kakkokari-gtyih

kakkokari-gtyih commented on Dec 27, 2023

@kakkokari-gtyih
Contributor
birthday: {
    year: number | null;
    month: number | null;
    date: number | null;
}

みたいな感じで保持するようにする…?

kakkokari-gtyih

kakkokari-gtyih commented on Dec 28, 2023

@kakkokari-gtyih
Contributor
birthday: {
    year: number | null;
    month: number | null;
    date: number | null;
}

みたいな感じで保持するようにする…?

オブジェクトにすると他の実装が崩れる(indexが効かなくなる)ので、年をxxxxにしたら非公開とかでもいいかもしれない よくないな

1Step621

1Step621 commented on Dec 28, 2023

@1Step621
Contributor

birthdayはそのままにisAgeHidden: boolean;のような設定を生やして、isAgeHiddenがtrueのときはbirthdayの年を9999という扱いにする
というのがサードパーティ製クライアントの対応なども考えたときに最適ではと思いましたが、どうでしょう?

syuilo

syuilo commented on Dec 28, 2023

@syuilo
Member

横から失礼します。0000年とか9999年をマジックナンバーにしてその時だけ消すっていう実装がいいのかなって思ったり screenshot 563

これで良いんじゃね

1Step621

1Step621 commented on Jan 3, 2024

@1Step621
Contributor

Screenshot_20240103-102247_Chrome.png
スマホの<input type="date">はカレンダーUIなので、ここから9999年を選ばせるのは微妙という問題がある

syuilo

syuilo commented on Jan 3, 2024

@syuilo
Member

UI上は年非表示スイッチでも付ければ良いんじゃないかしら

nryeouo

nryeouo commented on Jan 3, 2024

@nryeouo
Contributor

カレンダーUIなので

左上の「2024年」の部分を押すと、年選択画面が出てくるはず

1Step621

1Step621 commented on Jan 3, 2024

@1Step621
Contributor

左上の「2024年」の部分を押すと、年選択画面が出てくるはず

それでもスクロールが大変ではある気がする

1Step621

1Step621 commented on Jan 3, 2024

@1Step621
Contributor
Screencast.from.2024.01.03.12.26.18.webm

年非表示スイッチ

つけました(本当はmanualSaveにしたかったけど良い実装方法がわからず...)

kotonefami

kotonefami commented on Jan 3, 2024

@kotonefami

年非表示スイッチをONにするとそのinputがmin="0001-01-01" max="0001-12-31"とかになるみたいな挙動だと未設定の時と被らなくていいかなぁと思いました
なお0000-01-01はなぜか反応しませんでした
image

24 remaining items

u1-liquid

u1-liquid commented on Jan 12, 2024

@u1-liquid
SponsorContributor

birthdayの保存のフォーマットをMM-DD(-YYYY)?にすると色々都合がいい気がしますね…

今日(もしくは明日)誕生日のユーザー検索も先頭からのクエリーになるのでbtreeのインデックスでもwhere birthday like :monthday || '%'でインデックスが効いて文字列をごちゃごちゃしなくても一発で出てくるようになりますし、年を見せたく無ければAPIには送らない&DBでも余計な値を足さずに保存できますし…
(年の値があるかないかは-でsplitすると一発でわかる)

moved this from Todo to Needs Discussion in [実験中] 管理用on Feb 28, 2025
Sayamame-beans

Sayamame-beans commented on Mar 20, 2025

@Sayamame-beans
Member

<前略>であって、その他の箇所を見ても厳密にフォーマットや日時の正確性を判断している箇所はないように見えます。
i/updateの側でも一切チェックしておらず、フォーマットのみ、正規表現で簡易的にチェックされています。

export const birthdaySchema = { type: 'string', pattern: /^([0-9]{4})-([0-9]{2})-([0-9]{2})$/.toString().slice(1, -1) } as const;

そのため、こういうことも出来ると…
Image
#5375 (comment)

確認していたところ、現在のMisskeyの仕様では既に0000年も9999年も弾かれる実装では無かったため、いっそ0000で良いような感じもしてきました(0000も通ります)
Image

UI上では、ブラウザ標準を使用する場合は適当な年(例えば入力している日の年)で固定する、または月日をドロップダウンにしてしまう、或いは独自で月日のみの入力欄を作ってしまう等して、月日の入力であると伝わるものになっていればあまり問題にならなさそうな感じがしています…

(off-topic: ところでブラウザ標準の日付入力だと、PC等では年に6桁入りそうです(引用元issueコメント参照))

syuilo

syuilo commented on Mar 20, 2025

@syuilo
Member

そういや紀元前生まれの人は誕生日設定できないわね

tassoman

tassoman commented on Jan 8, 2026

@tassoman
Contributor

Se fossi timido, vorrei nascondere l'anno e l'età. Vorrei vedere solo il giorno e il mese 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    [Feat] UsersProfileUser's profile related issuepackages/backendServer side specific issue/PR✨FeatureThis adds/improves/enhances a feature

    Type

    No type

    Projects

    Status

    Needs Discussion

    Milestone

    No milestone

    Relationships

    None yet

      Development

      Participants

      @tassoman@syuilo@wh1tecat-nya@u1-liquid@noellabo

      Issue actions