2017-01-26 4 views
2

私は自分のブックマークからRSSフィードを作成しているPHPのブックマークスクリプトを持っています(スクリプトはSemantic Sc​​uttleです)。 RSSの各項目は以下のようになります。PHPで日付を変更する

<item> 
    <title>Technology and the Evolution of the Designer’s Role</title> 
    <link>https://blogs.adobe.com/creativecloud/technology-and-the-evolution-of-the-designers-role</link> 
    <guid>http://apps.timpaneeze.com/bookmarks/www/#7</guid> 
    <description>Today, we often associate design with activities like user experience, graphic and web design, or perhaps fashion and product design. Mass communications and mass production brought with them the need for specific skills in creating posters and products. Each wave of technological change brings with it an evolution in the role and activities that designers undertake.</description> 
    <dc:creator>bobroberts</dc:creator> 
    <pubDate>Fri, 27 Jan 2017 00:05:50 +0000</pubDate> 
    <category>design</category> 
</item> 

pubdateはシステムで実際にブックマークを作成した時刻と一致せず、変更するUIはありません。 strtotime($row['bDatetime']) - 60 * 60 * 14を使用して時間を変更するオンラインアドバイスを見つけました(1つの投稿は14時間オフでした)。しかし、それは実際に日付を固定しているわけではありません。一部の項目では、結果の時刻は正しいが、他の項目では正しくない。

また、RSSフィード項目をワードプレスにプルダウンすると、時間がさらに激しくなります。 WPは、そのRSSアイテムを、2017年1月26日の18:05の公開予定時刻に持っていきました。 WPのインストールは、ロサンゼルス(太平洋)のタイムゾーンに設定されています。

ので、簡単にまとめ:

  • 私は午前10時05太平洋
  • でブックマークを作成するブックマークシステムは、同じ日午前5時05分とその18として
  • WPの輸入をその作成時間をマーク: 05同じ日に確実に私はこれらのマッチアップを作るにはどうすればよいのすべてのpubDateの

が解決しないstrtotime($row['bDatetime']) - 60 * 60 * 5を使用して

  • 公開日の+0000はキーですか?もしそうなら、それをどうやって修正するのですか?

    pubdateがブックマークスクリプトファイルに表示される唯一の場所はここです。あなたは最後の一番上にそれを修正するために私の失敗した試行元の行を見ることができます:

    $_pubdate = gmdate('r', strtotime($row['bDatetime']) - 60 * 60 * 14); 
    /* PSB EDIT Replaced below line with above. */ 
    /* $_pubdate = gmdate('r', strtotime($row['bDatetime'])); */ 
    
  • +0

    はまた、<のIfModule mod_php5.c> はphp_value date.timezoneで "アメリカ/ Los_Angeles" '' – iampariah

    +0

    php.iniの するには、以下の追加(成功なし)試してみました「SetEnv TZ America/Los_Angeles」を.htaccessに追加する効果はありません。 – iampariah

    答えて

    2

    チャットルームでいくつかの時間後に、RFC822の日付文字列へのMySQLの日付文字列を変換するに煮詰め質問を、しばらく正しいタイムゾーンを維持する。これは、作業を終わったコードです:

    $timestamp = strtotime($row["bDatetime"]); 
    if (date("I", $timestamp) == 1) { 
        $offset = 25200; 
    } else { 
        $offset = 28800; 
    } 
    $_pubdate = date("r", $timestamp - $offset); 
    
    +0

    [チャットでこのディスカッションを続けましょう](http://chat.stackoverflow.com/rooms/134122/discussion-between-miken32-and-iampariah) – miken32