PHPから得られたUNIX時間(1970年1月1日からの秒数)のデータをEXCELで扱いたいのですが、
EXCEL上で、UNIX時間の数値を、日付データと時間データに変換するにはどうすれば良いのでしょうか?
※AccessAnalyzer(http://ax.xrea.com/)からダウンロードした生ログのログイン時間をEXCELで分析するのが目的です。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

>PHPから得られたUNIX時間(1970年1月1日からの秒数)


これがA1セルにあるとして、
="1970/1/1"+A1/86400

上記計算で得られたシリアル値を表示形式で日付けと時間にすれば良いのでは?
    • good
    • 5
この回答へのお礼

早速のご回答ありがとうございました。
一発でExcelに変換できました。ありがとうございました。

お礼日時:2004/09/27 16:44

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q漢字変換がおかしいのです。ブルーレイと入力すると”ブルー例”となったり

漢字変換がおかしいのです。ブルーレイと入力すると”ブルー例”となったり以前はこんなことありませんでした。どうしたらまともな変換になりますでしょうか?

Aベストアンサー

MS-IMEなら普通でしょ?私のもそうなります。全部カタカナにするには、キー入力後、F7キーか、Ctrl+IでOKかと。それより、Googleの日本語入力システム(IME)なら、一発変換ですが。

Q日付の計算方法(1970年以前のデータを含む)

過去の日付のデータがあって、今日までのの経過年月日を求めたいです。
(例)
 データ 1980年1月5日
 本日が2004年2月6日なので、求めたい結果は24年1月1日
日付のデータには1970年以前のデータも含まれるためタイムスタンプ(グリニッジ標準時)が使用できません。
関数などを使って簡単に求める方法はあるのでしょうか?
どのようにしたら求められるかわかる方教えていただけませんでしょうか。
よろしくお願いいたします。

Aベストアンサー

年と月だけ得られれば良いという事であれば、それほど難しくないです。

<?php
$today = getdate();
print("本日 $today[year]年$today[mon]月$today[mday]日\n");

$data_y = 1980 ;
$data_m = 1 ;
$data_d = 5 ;
print("データ $data_y年$data_m月$data_d日\n");

if ( $today[mday] < $data_d ){
$data_m ++ ;
}
if ( $today[mon] < $data_m ){
$data_y ++ ;
}

$kekka_y = $today[year] - $data_y ;
$kekka_m = $today[mon] - $data_m ;
print("結果 $kekka_y年$kekka_m月\n");
?>

こんな感じでいかがですか?

Q変換がおかしいのですが・・・

ワード、エクセル、IEで文字入力します。
『やました』で変換すると 『屋真下』となってしまいます。
『や・ました』で区切られてる?
ほかにも、『かぶしきかいしゃ』で変換すると 『カブシキカイシャ』と片仮名で表記されたりします。

何か設定がおかしいんでしょうか?

Aベストアンサー

辞書の学習頻度についてを変更した覚えがなければ、設定がおかしいということではないと思いますし、使用するアプリケーションや環境によって辞書の鍛え方を変更したいというようなシチュエーションでない限り、学習の頻度を変更すべきではないと考えます。
・『やました』については
お使いのIMEが、変換する文節の区切り位置を「や」でまず区切るように学習してしまった結果だと思われます。おそらく「や」という単漢字変換を過去に確定したことがあるのでしょう。
とりあえずは文節の区切り位置を変更することで当座はしのげますし、その内容を新たに学習すれば以前の使い勝手が戻ってきます。
文節の区切り位置の変更は、お使いのIMEの種類によって異なりますし、また、まったく同じ種類のモノでも設定によってはまったく違う操作方法にカスタマイズすることまでできますので、下記URLをご参照ください。
http://www.hyperteika.com/ime/atok/atok_key13.html
ATOK デフォルトは[←]キーまたは[→]キーを押します。
http://www.hyperteika.com/ime/ms-ime2002/msxp_key2.html
MS-IME デフォルトは[Shift]キーを押した状態で[←]キーまたは[→]キーを押します。

学習しなおすのを待ってなんかいられない、一刻も早くこの文節の誤認識とはおさらばしたい、とおっしゃるなら「ユーザー辞書を初期化」してしまうのも手です。
MS-IMEの場合しか知りませんが、、IMEの「プロパティ」→「辞書/学習」タブで、「修復」ボタンをクリックすることで、辞書が初期化されます。おそらく今までご利用のユーザー辞書の名前はIME98が「msime98.dic」、IME2000が「imejpusr.dic」、IME2002が「imjp8u.dic」だったはずですが、辞書の修復をすると、今までのユーザー辞書は拡張子が「000」のファイルに変更されてバックアップとして保存されることになり、同名の*.dicファイルが新たにまっさらな状態で作成されます。
バックアップを書き戻すときは、「000」の拡張子を「dic」に変更してから参照する辞書を指定しなおすことで有効になります。

・『カブシキガイシャ』の件も辞書の学習の結果だと思います。

辞書の学習頻度についてを変更した覚えがなければ、設定がおかしいということではないと思いますし、使用するアプリケーションや環境によって辞書の鍛え方を変更したいというようなシチュエーションでない限り、学習の頻度を変更すべきではないと考えます。
・『やました』については
お使いのIMEが、変換する文節の区切り位置を「や」でまず区切るように学習してしまった結果だと思われます。おそらく「や」という単漢字変換を過去に確定したことがあるのでしょう。
とりあえずは文節の区切り位置を変更するこ...続きを読む

Qhttp://とhttps://のどちらでもマッチングできる正規表現

http://とhttps://のどちらでもマッチングできる正規表現の書き方が分かりません。aタグの中のhref="のあとのURL部分にhttpでもhttpsのどちらでもOKのマッチングをかけたいです。
具体的にはhttp://www.aaa.co.jpでもhttps://www.aaa.co.jpのどちらでもpreg_match_allでマッチングをかけたいです。
$count=preg_match_all("正規表現",$URL,$maches);
という感じでhttpかhttpsのURLに引っ掛けたいです。
教えてください

Aベストアンサー

$count = preg_match_all('/^(https?:\/\/.+)$/', $URL, $matches);

実際に使うならもっと厳密にチェックする必要があるでしょう。

Q変換がおかしい・・・

なんだか変換がおかしいのです。
まぁ使う分にはそれほど困らないのですが・・・

・変換時なぜかひらがなが一番上にでることが多い。
・例えば、良い(いい)が いい の変換で出てこない。
(上記「良い」は「よい」と打ち込み出てきました。
以前は いい で変換できたのに。)
特になにもしていないのに微妙におかしいんですよ。。。

Aベストアンサー

  とりあえず学習情報を消去してみますか。改善されないならリンク先から一通りどうぞ。

  <Office IME 2007 で入力した文字を漢字に変換できない場合の対処方法>
 http://support.microsoft.com/kb/932102/ja(修正プログラムあり)

QX軸が秒単位Y軸が何秒ごとの数を表したグラフを作る

X軸が秒単位、Y軸が何秒ごとの数を表したグラフを作る際に書いたコードなのですが、
データが増えすぎると処理時間が長くなるので、もっと処理速度の速いアルゴリズムはないでしょうか?
class JsonDate{
public $start_time;//エポックタイム
public $end_time;//エポックタイム
public $duration = 2;//単位は秒

function getDateCounts(){
$this->start_time = 1369706475;
$this->end_time = 1369706492;
/*
$dates配列の中身は昇順です
*/
$dates = array(
1369706475,
1369706477,
1369706478,
1369706479,
1369706481,
1369706486,
1369706486,
1369706487,
1369706489,
1369706492,
);
$dateCounts = array();
for($to = $this->start_time + $this->duration;$to < $this->end_time; $to+=$this->duration){
$from = $to - $this->duration;
if(!isset($dateCounts[$to]))$dateCounts[$to] = 0;
foreach ($dates as $i => $date){
if($from < $date ){
if($date <= $to){
$dateCounts[$to]++;
}else{
break;
}
}else{
unset($dates[$i]);
}
}
}
return $dateCounts;
}
}
$JD = new JsonDate();
$dateCounts = $JD->getDateCounts();
print_r($dateCounts);

結果は
(
[1369706477] => 1
[1369706479] => 2
[1369706481] => 1
[1369706483] => 0
[1369706485] => 0
[1369706487] => 3
[1369706489] => 1
[1369706491] => 0
)

X軸が秒単位、Y軸が何秒ごとの数を表したグラフを作る際に書いたコードなのですが、
データが増えすぎると処理時間が長くなるので、もっと処理速度の速いアルゴリズムはないでしょうか?
class JsonDate{
public $start_time;//エポックタイム
public $end_time;//エポックタイム
public $duration = 2;//単位は秒

function getDateCounts(){
$this->start_time = 1369706475;
$this->end_time = 1369706492;
/*
$dates配列の中身は昇順です
*/
$dates = array(
1369706475,
1369706477,
1369706478,
1369706479...続きを読む

Aベストアンサー

(私の頭がカタいだけかもしれませんが)ちょっとこれだけでは何をしているのか分かりづらいですねぇ・・・

とりあえず他の回答者さんのために整形したコード貼っておきます
http://ideone.com/Qk3Ld9

Q文字変換がおかしい

Vistaに買い替えてしばらくしてから、文字変換が時々おかしくなります。
例えば「がっこう」をしても「学校」とはならずに1「がっこう」2「ガッコウ」3「人名・地名」の3つが選択候補に上がります。ちなみにこの時3「人名・地名」をクリックすると、「月光」に変換されます。
このため、「学」と「校」をそれぞれ単漢字で一文字ずつ変換しないと「学校」という単語が入力出来ないのです。
ただし、単漢字の変換もおかしくて、「がく」を変換すると1「がく」2「ガク」3「人名・地名」が選択候補にあがります。ここで3「人名・地名」を選択すると単漢字がたくさん出てきます。
キーボードを色々いじれば元通りのちゃんとした変換が出来るようになることを発見しましたが・・・(なぜか無変換を押してカタカナ入力にしてから変換すると上手くいくことがあり、うまくいってからひらがな入力に直すと通常の状態に復旧することもあるんです!)
でもいくらやってもダメな時もあり、本当にいらいらします。
これはパソコン自体がどこかおかしいという事なのでしょうか?それとも直す事は出来るのでしょうか?

Vistaに買い替えてしばらくしてから、文字変換が時々おかしくなります。
例えば「がっこう」をしても「学校」とはならずに1「がっこう」2「ガッコウ」3「人名・地名」の3つが選択候補に上がります。ちなみにこの時3「人名・地名」をクリックすると、「月光」に変換されます。
このため、「学」と「校」をそれぞれ単漢字で一文字ずつ変換しないと「学校」という単語が入力出来ないのです。
ただし、単漢字の変換もおかしくて、「がく」を変換すると1「がく」2「ガク」3「人名・地名」が選択候補にあがり...続きを読む

Aベストアンサー

私も以前Vista+IME2007で似たような状態になったことがあります。
すべての語句で起こったわけではないのですが、特定の範囲の語句で起こりました。
ex) 「な」で始まる語だけ単漢字以外変換できず、「と」や「に」は普通に変換できる

XP+Office2003からのアップグレードだったのでそれが原因かもと思ったのですが、参考URLの

方法 4 : 学習情報を消去する
方法 5 : ユーザー辞書を再構築する

の両方を実行したところ正常に戻りました(両方同時に試したのでどちらかだけでいいのかもしれませんが)。

参考URL:http://support.microsoft.com/default.aspx?scid=kb;ja;932102&sd=rss&spid=8753

QDATETIME型からUNIX時間を求める方法

現在、MYSQL、DATETIME型 YYYY-MM-DD HH:MM:SS からUNIX時間を求める際に、気軽に質問出来る詳しい方が知り合いにおらずPHP学習中で知識が乏しいため、YYY-MM-DD HH:MM:SS をスペースで分割、をハイフンで分割、HH:MM:SSをコロンで分割、その後、mktimeに当てはめてUNIX時間を求めています。
他に簡単にDATETIME型からUNIXTIME求める関数などがありましたらご教示頂けましたら嬉しいです。

それとも、計算が必要な日時をMYSQLに格納する場合はINSERTする場合にUNIX時間でINSERTし、表示が必要な場合に、DATE関数等で日時として表示する方が良いのでしょうか?

Aベストアンサー

メジャーな形式であればだいたい strtotime でいけると思います。
http://jp.php.net/strtotime

Q変換がおかしいのです。。

変換がおかしい。。誰か助けてください

「はがね」と打って変換キーを押すと「は画ね」となり、「きんはく」と打って変換キーを押すと「金は区」となります。
2回目の変換キーボタンを押すと「鋼」「金箔」と正常に変換してくれるのですが、1回目の意味不明な変換がいつまで
たっても直りません。どうしたらよいでしょか

Aベストアンサー

(1) IME(日本語変換ソフト)の辞書は学習効果があるのでよくつかわれる文字順に並んでいるため、一概には言えませんが、「きんは(HA)く」は「きんぱ(PA)く」と打てばよかったと思います。
(2) 変換キーを押したときにアンダーラインの太い部分が変換の対象です。変換対象の伸ばしたり縮めたりするには、「Shift」+「→」OR「←」を使います。
(3) 私のお勧めは「最初から変換キーは2回押す」習慣をつけたほうがよいと思います。思わぬ収穫があるはずです。
例えば、「/」はどのように入力しますか?「め」のキーにありますが「・」であきらめていませんか?「・」を入力、変換キーを2回押してみてください。

QUNIX時間で今月1日~末日を取得するには・・・

PHP4.x.xです。
初心者です。

ショッピングカートの注文データを閲覧するページで
「今月一ヶ月間の売り上げ」という表示の仕方をしたいです。

売り上げテーブルのorder_dateというフィールドに注文された日時がUNIX時間(エポック秒)で入っています。

人力で2009年11月1日0時の数値を求め、2009年11月30日11時59分59秒の数値を求め、select * order where order_date >******* and order_data <****** とすることは簡単なのですが・・・あまりにも美しくない、かつ何年後までやるねん・・・と面倒くさい。

何かいい方法でしょうか?

Aベストアンサー

質問内容から察するに、月初め(2009年11月1日0時0分0秒)と月末日(2009年11月30日11時59分59秒)をいちいち人力で求めたくないということですか?
(年・月を入力したくない。月の最終日をわざわざ調べて入力したくない)

年・月を入力せず、今月のみでよいのなら下記のようなのはどうでしょう?
月の末日($ed)は翌月の0日で求められました。(越年も対応:2010/1/0=>2009/12/31)

-------------- ↓ここから↓ ----------------
<?php
$year = date('Y', time());
$month = date('n', time());
$st = mktime( 0, 0, 0, $month, 1, $year);
$ed = mktime(23, 59, 59, $month+1, 0, $year); // 翌月0日=当月最終日

$sql = "select * order where order_date >={$st} and order_data <={$ed}";

echo("sql:".$sql."<br>\n");

// 以下は確認用
echo("st:".$st."<br>\n");
echo("ed:".$ed."<br>\n");
$st_stm = date("Y / m / d H:i:s", $st);
$ed_stm = date("Y / m / d H:i:s", $ed);
echo("st_stm:".$st_stm."<br>\n");
echo("ed_stm:".$ed_stm."<br>\n");
?>
-------------- ↑ここまで↑ ----------------

(確認テストなど)任意の年・月で行ないたいなら
$year = $_GET['y'];
$month = $_GET['m'];
などを使って下さい。(要バリデーション)

質問内容から察するに、月初め(2009年11月1日0時0分0秒)と月末日(2009年11月30日11時59分59秒)をいちいち人力で求めたくないということですか?
(年・月を入力したくない。月の最終日をわざわざ調べて入力したくない)

年・月を入力せず、今月のみでよいのなら下記のようなのはどうでしょう?
月の末日($ed)は翌月の0日で求められました。(越年も対応:2010/1/0=>2009/12/31)

-------------- ↓ここから↓ ----------------
<?php
$year = date('Y', time());
$month = date('n', time());
$st = mkt...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング