3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

BRIGHT VIEAdvent Calendar 2017

Day 16

ブラウザによって、JSエンジンが解釈できる「日付書式」が違う

Posted at

この記事は BRIGHT VIE Advent Calendar 2017 16日目の記事になります。

#はじめに

私が、IonicなどのiOSアプリやWebアプリを開発している時、
ブラウザはChromeを使い開発しています。

Chromeで動作検証をし、問題なさそう!と思ったタイミングで、
実機へ移すと「スクリプトエラーでてるやん・・・」みたいなことがたまにあります。

#ChromeとSafariのJSエンジンの違い

この違いによって、Mac上(Chrome)では上手く動いていたのに、
実機へもっていくとスクリプトエラーで動かない!といったケースが起こってしまいます。

■各ブラウザごとのJSエンジンの違い
Chrome:Chrome V8
Safari:JavaScriptCore

#Date型の書式解釈の違い

「そんな書き方だめでしょ!」という批判は、今回は無しでお願いしますw

以下の書き方は、ChromeもSafariもOKです。

var f = new Date("2017/02/03 14:00");
console.log(f);

//Chrome・Safari ◯
// → Fri Feb 03 2017 14:00:00 GMT+0900 (JST)

ですが、以下の書き方はSafariでは怒られます。

var f = new Date("2017-02-03 14:00");
console.log(f);

//Chrome ◯
// → Fri Feb 03 2017 14:00:00 GMT+0900 (JST)

//Safari ✕
// → Invalid Date

「ハイフン付きの日付書式なんて使っちゃだめだよ」と言われてしまいそうですが、
使ってしまったものは仕方ないので、
「以降注意していこう!」と、自分自身に気をつけながら日々成長です。

(そもそも、なんでこんな差異がエンジンごとにでてしまうんだ、、そっちを直してくれ!ともたまに思いますw)

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?