No.8
- 回答日時:
復活!これならいいかも?
function dayCount(date_str){
var dy=date_str.split(/\/|-| |:/);for(var i=0;i<6;i++) dy[i]=dy[i]?dy[i]-0:0;
var d=(dy[0]-1)*365+((dy[0]-1)/400|0)-((dy[0]-1)/100|0)+((dy[0]-1)/4|0)+[0,0,31,59,90,120,151,181,212,243,273,304,334][dy[1]]+dy[2]+(((!(dy[0]%4))^(!(dy[0]%100))^(!(dy[0]%400)))&(dy[1]>2));
var t=dy[3]/24+dy[4]/1440+dy[5]/86400;
return (d+t).toFixed(6);
}
No.6
- 回答日時:
再度訂正です。
差し替えてください。
function dayCount(date_str){
var dy=date_str.split(/\/|-| |:/);for(var i=0;i<6;i++) dy[i]=dy[i]?dy[i]-0:0;
var u=dy[0]%400;
var d=(dy[0]-1)*365+(dy[0]/400|0)-(dy[0]/100|0)+(dy[0]/4|0)+[0,0,31,59-(!(dy[0]%400)^!(dy[0]%100)^!(dy[0]%4)),90,120,151,181,212,243,273,304,334][dy[1]]+dy[2];
var t=dy[3]/24+dy[4]/1440+dy[5]/86400;
return (d+t).toFixed(6);
}
曜日の計算が正しく計算されませんでした(それでも自信がなくなってきた)
alert('日 月 火 水 木 金 土'.split(' ')[dayCount('2008/9/4')%7]);
で「木」になります
No.4
- 回答日時:
たぶんエクセルのシリアル値ということで
<html>
<body>
<script type="text/javascript" language="JavaScript">
alert(serial('2008/09/03 12:34:56'));
alert('俺が生まれてからすでに、'+(dayCount('2008/09/03')-dayCount('1966/01/12'))+'日が経過した。');
function serial(date_str){
return (dayCount(date_str)-dayCount('1899/12/31')).toFixed(6);
}
function dayCount(date_str){
var dy=date_str.split(/\/|-| |:/);for(var i=0;i<6;i++) dy[i]=dy[i]?dy[i]-0:0;
var d=dy[0]*365+(dy[0]/400|0)-(dy[0]/100|0)+(dy[0]/4|0)+[0,0,31,59,90,120,151,181,212,243,273,304,334][dy[1]]+dy[2];
var t=dy[3]/24+dy[4]/1440+dy[5]/86400;
return (d+t).toFixed(6);
}
</script>
</body>
</html>
No.3
- 回答日時:
書き直した
alert(dateChk('2000/02/29')?'○':'×');
function dateChk(date_str){
if(date_str.match(/[^\d-/]/)) return;
var dy=date_str.split(/\/|-/);for(var i in dy) dy[i]-=0;
if(dy[0]<1 || dy[1]<1 || dy[1]>12 || dy[2]<1 dy.length!=3) return;
if(dy[2]>[0,31,28+(!(dy[0]%400)^!(dy[0]%100)^!(dy[0]%4))*1,31,30,31,30,31,31,30,31,30,31][dy[1]]) return;
return true;
}
No.2
- 回答日時:
日付チェック!
alert(dateChk('2000/02/29')?'○':'×');
function dateChk(date_str){
if(date_str.match(/[^\d-/]/)) return;
dy =date_str.match(/^(\d{4})[/-](\d{1,2})[/-](\d{1,2})$/); if((dy[2]-1)/12|0!=0) return;
if(((dy[3]-1)/([0,31,28+(!(dy[1]%400)^!(dy[1]%100)^!(dy[1]%4))*1,31,30,31,30,31,31,30,31,30,31][dy[2]-0])|0)==0) return true;
}
日付のシリアル値ってエクセルの?
日付の分割
day='2008/02/28'.split('/');for(var i in day) day[i]-=0;
day[0]=年、day[1]=月、2が日
例二月だけを取り出すなら
mm='2008/02/28'.split('/')[1]-0
とか
No.1ベストアンサー
- 回答日時:
関数を自作した。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">//<![CDATA[
function isValidDateString(str1){
try{
//実装依存だらけでDate.parseが糞の役にも立ちやしないので
var r = new RegExp("^(\\d\\d\\d\\d)/(\\d\\d)/(\\d\\d)$");
r.multiline = false;
r.global = true;
var arr = r.exec(str1);
//引数は現在のロケール!
var d = new Date(parseInt(arr[1],10),parseInt(arr[2],10) - 1,parseInt(arr[3],10));
//そのDateから文字列を生成してみる。生成するときは現在のロケールで。
var str2 = [d.getFullYear().toString() ,("0"+(d.getMonth()+1).toString()).slice(-2),("0"+(d.getDate()).toString()).slice(-2) ].join("/");
}catch(e){
alert(e);
}
return(str1 == str2);
}
//]]>
</script>
</head>
<body>
<ul>
<li onclick="alert(isValidDateString('2000/02/29'));">2000/02/29</li>
<li onclick="alert(isValidDateString('2004/02/29'));">2004/02/29</li>
<li onclick="alert(isValidDateString('2008/08/31'));">2008/08/31</li>
<li onclick="alert(isValidDateString('2008/08/32'));">2008/08/32</li>
<li onclick="alert(isValidDateString('2100/02/29'));">2100/02/29</li>
<li onclick="alert((new Date(2008,7,31)).getTime())">(int)2008/08/31</li>
</ul>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- Excel(エクセル) vba 同じブック内での転記について 4 2023/01/15 14:42
- JavaScript ソースコードは下の共有コードサイト「張り紙」にあります。 入力フォームの javascript で 1 2022/05/11 11:01
- 輸入車 BMW2シリーズ アクティブツアラーの警告表示について 2016年製 走行39000km 2022年 2 2022/11/15 07:54
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Microsoft ASP グーグルフォーム 1 2022/12/30 18:16
- 時計・電卓・電子辞書 100円で売っていた、マッチ箱くらいの大きさのデジタル時計 6 2022/05/17 21:12
- その他(プログラミング・Web制作) VB.NETの正規表現について 4 2022/04/12 16:54
- YouTube 日本語文向けの正規表現が学べるサイトやYouTubeチャンネルがあったら教えてほしいです。 「正規表 6 2022/04/26 07:02
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GASでGoogleフォームの自動返信...
-
第3日曜日のみの日付を取得、...
-
setTimeoutによる繰り返しが途...
-
引数なしの関数で疑問です
-
google map apiで下記のhtmlが...
-
C#OpenCv V4にのエラーに関する...
-
googleスプレッドシートのApps ...
-
google apps scriptの終了のさせ方
-
Javascript で可能でしょうか
-
分岐処理(アルゴリズム)
-
アルファベットABCD…をスマート...
-
JavaScriptのindexedDBに格納し...
-
なぜmatchメソッドがエラーにな...
-
ページ最終行へジャンプする方法
-
javascript修正依頼
-
var exports = exports || {}; ...
-
javascriptでiframeのURL変更は?
-
ASP.NETのコントロールの値をJa...
-
GoogleMap 住所から座標の取得
-
カンマで終わってるのはセミコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
google apps scriptの終了のさせ方
-
C#OpenCv V4にのエラーに関する...
-
メールフォームの日付入力フォ...
-
GASでundefinedエラーが出ます
-
ジェネレーターの作り方
-
GASでGoogleフォームの自動返信...
-
なぜmatchメソッドがエラーにな...
-
翌月を取得するGASが分かりません
-
ローカルにあるファイルを検索...
-
HTMLで作った時報アプリが動き...
-
ASP.NETのコントロールの値をJa...
-
C# 演算 奇数と偶数 表現の仕方
-
html javascript リンク先アド...
-
gas スプレッドシートがアクテ...
-
javascriptでテーブルに追加し...
-
VSCODE[Python]の設定について
-
JavaScriptで決まった「時刻」...
-
ASP.NET MVCでObjectをjsに渡す
-
イベントが初めの一回しか起き...
-
jqGridについて
おすすめ情報