「なでしこv3」開発掲示板

なでしこ3を改善するための掲示板
[一覧へ] > (@25) [低] [解決]
@25■ (#89) 日時処理系の命令がPCからだと問題ないのにiOSからだとうまく実行されない - eighty6 (2022-02-07 23:24) /低 未処理
例えば
https://nadesi.com/v3/doc/index.php?plugin_datetime%2F%E5%92%8C%E6%9A%A6%E5%A4%89%E6%8F%9B&show
にあるサンプルを実行すると
> [実行時エラー]main.nako3(1行目): エラー『『和暦変換』は明示以前の日付には対応していません。』が発生しました。
とエラーが出るし、
https://nadesi.com/v3/doc/index.php?plugin_datetime%2F%E6%99%82%E9%96%93%E5%B7%AE&show
にあるサンプルを実行すると
> NaN
と表示されます。
ちなみにブラウザはChrome, Safari関係なくでます。
iOSのバージョンは15.2.1です。

(#90) iOSでの日時関数がうまく動かない(内部のDateへの日付文字列の書式が環境依存している) - 通り道 (2022-02-11 00:30) /低 未処理
手元のiOS(iPhone SE 2nd)で再現確認しました。

内部でDate.parse(string)やnew Date(string)を使用している部分で、日時として
渡している日付文字列がうまく処理されない(iOSのみ他と差異が大きい)ようです。
ほぼ、plugin_systemの日時系が全滅のようです。

もともと、最新の仕様としての正解は、以下のRFC 2822かISO 8601が必要で、
https://datatracker.ietf.org/doc/html/rfc2822#section-3.3
従っていない場合には環境依存(OS任せ)となるブラウザが多いようです。
ES5以前は完全に環境依存だった模様。
可能ならば、Date.parse()相当を使わないのが良さそうです。
(文字列のコンストラクタではなく、要素を個々に指定すかutimeのコンストラクタを使う)

https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

plugin_datatimeについては、dayjsの仕様になるので、

For consistent results parsing anything other than ISO 8601 strings, you should use String + Format.

とのこと。ISO 8601は、
dayjs("2018-04-04T16:00:00.000Z")
のような感じの形式です。

(#91) 検証ありがとうございます。修正しました。 - クジラ飛行机 (2022-02-16 11:44) /低 未処理
下記で修正しました。次のバージョンをお待ちください!
https://github.com/kujirahand/nadesiko3/issues/1159

(#92) 動作確認しました - eighty6 (2022-02-19 01:31) /低 解決
修正お疲れ様です。
これからも開発頑張ってください。

(#89)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能