SafariでのtoLocaleDateStringの動作に関する問題と解決策


const options = { 
  year: 'numeric', 
  month: 'long', 
  day: 'numeric', 
  weekday: 'long' 
};
const date = new Date();
const formattedDate = date.toLocaleDateString('ja-JP', options);
console.log(formattedDate);
  1. ブラウザのバージョンの確認: Safariのバージョンによっては、toLocaleDateStringの動作に関するバグや問題が存在する可能性があります。最新のバージョンにアップデートすることを検討してください。

  2. ライブラリの使用: toLocaleDateStringの代わりに、Moment.jsやdate-fnsなどの日付処理ライブラリを使用することも検討できます。これらのライブラリはブラウザ間の互換性に対応しており、正確な日付フォーマットを提供します。

const date = new Date();
const formattedDate = moment(date).format('YYYY年MM月DD日');
console.log(formattedDate);
  1. カスタム関数の作成: toLocaleDateStringの代わりに、自分でカスタムの日付フォーマット関数を作成することもできます。これにより、ブラウザの互換性の問題を回避できます。
function formatDate(date) {
  const year = date.getFullYear();
  const month = ('0' + (date.getMonth() + 1)).slice(-2);
  const day = ('0' + date.getDate()).slice(-2);
  return year + '年' + month + '月' + day + '日';
}
const date = new Date();
const formattedDate = formatDate(date);
console.log(formattedDate);