<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP Log &#187; Zend Framework</title>
	<atom:link href="http://www.php-log.de/tags/zend-framework/feed" rel="self" type="application/rss+xml" />
	<link>http://www.php-log.de</link>
	<description>Eine feine Sammlung nützlicher PHP Notizen</description>
	<lastBuildDate>Mon, 20 Sep 2010 00:22:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Ein Array mit fortlaufenden Tage eines Intervals mit Zend_Date</title>
		<link>http://www.php-log.de/425/php/ein-array-mit-fortlaufenden-tage-eines-intervals-mit-zend_date</link>
		<comments>http://www.php-log.de/425/php/ein-array-mit-fortlaufenden-tage-eines-intervals-mit-zend_date#comments</comments>
		<pubDate>Sat, 15 Aug 2009 21:10:59 +0000</pubDate>
		<dc:creator>ralle</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.php-log.de/?p=425</guid>
		<description><![CDATA[Lang ist&#8217;s her dass ich eine Tabelle bauen musste, deren Zeilen einen jeweils einen Tag eines bestimmten Datum-Intervals representieren. So wie hier: Für die Lösung nutze ich wie immer Zend_Date. /** * Get an array with all days $from - $till * * @param string $from start date e.g. 2008-12-24 * @param string $till end [...]]]></description>
			<content:encoded><![CDATA[<p>Lang ist&#8217;s her dass ich eine Tabelle bauen musste, deren Zeilen einen jeweils einen Tag eines bestimmten Datum-Intervals representieren. So wie hier:</p>
<div id="attachment_426" class="wp-caption alignleft" style="width: 413px"><img class="size-full wp-image-426" title="Datumsinterval" src="http://www.php-log.de/wp-content/uploads/2009/08/Editors.png" alt="Datumsinterval" width="403" height="256" /><p class="wp-caption-text">Ein Array mit fortlaufenden Tagen eines Datum-Interval</p></div>
<p><span id="more-425"></span></p>
<p>Für die Lösung nutze ich wie immer Zend_Date.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
 * Get an array with all days $from - $till
 *
 * @param string $from start date e.g. 2008-12-24
 * @param string $till end date e.g. 2008-12-24
 * @param string $max maximal number of days 
 * @return array
 * @author Ralf Kramer
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> getDayArray<span style="color: #009900;">&#40;</span><span style="color: #000088;">$from</span><span style="color: #339933;">,</span> <span style="color: #000088;">$till</span><span style="color: #339933;">,</span> <span style="color: #000088;">$max</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">365</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$start</span> 	<span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Date<span style="color: #009900;">&#40;</span><span style="color: #000088;">$from</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$stop</span> 	<span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Date<span style="color: #009900;">&#40;</span><span style="color: #000088;">$till</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$i</span> 	 <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$start</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">compare</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$stop</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
		<span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$res</span><span style="color: #339933;">,</span> 
			<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
				<span style="color: #0000ff;">'date'</span> 		<span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$start</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'yyyy-MM-dd'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
				<span style="color: #0000ff;">'week'</span> 		<span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$start</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span>Zend_Date<span style="color: #339933;">::</span><span style="color: #004000;">WEEK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
				<span style="color: #0000ff;">'day_name'</span> 	<span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$start</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span>Zend_Date<span style="color: #339933;">::</span><span style="color: #004000;">WEEKDAY</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
				<span style="color: #0000ff;">'weekday'</span> 	<span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$start</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span>Zend_Date<span style="color: #339933;">::</span><span style="color: #004000;">WEEKDAY_DIGIT</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$start</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span> Zend_Date<span style="color: #339933;">::</span><span style="color: #004000;">DAY</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// Emergency break</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$max</span> <span style="color: #009900;">&#41;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$res</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000088;">$dates</span> <span style="color: #339933;">=</span> getDayArray<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'2009-01-01'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'2009-01-07'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$dates</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">Array</span>
<span style="color: #009900;">&#40;</span>
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #208080;">01</span><span style="color: #339933;">-</span><span style="color: #208080;">01</span>
            <span style="color: #009900;">&#91;</span>week<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #208080;">01</span>
            <span style="color: #009900;">&#91;</span>day_name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Donnerstag
            <span style="color: #009900;">&#91;</span>weekday<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">4</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #208080;">01</span><span style="color: #339933;">-</span><span style="color: #208080;">02</span>
            <span style="color: #009900;">&#91;</span>week<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #208080;">01</span>
            <span style="color: #009900;">&#91;</span>day_name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Freitag
            <span style="color: #009900;">&#91;</span>weekday<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">5</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #208080;">01</span><span style="color: #339933;">-</span><span style="color: #208080;">03</span>
            <span style="color: #009900;">&#91;</span>week<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #208080;">01</span>
            <span style="color: #009900;">&#91;</span>day_name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Samstag
            <span style="color: #009900;">&#91;</span>weekday<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">6</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #208080;">01</span><span style="color: #339933;">-</span><span style="color: #208080;">04</span>
            <span style="color: #009900;">&#91;</span>week<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #208080;">01</span>
            <span style="color: #009900;">&#91;</span>day_name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Sonntag
            <span style="color: #009900;">&#91;</span>weekday<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #208080;">01</span><span style="color: #339933;">-</span><span style="color: #208080;">05</span>
            <span style="color: #009900;">&#91;</span>week<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #208080;">02</span>
            <span style="color: #009900;">&#91;</span>day_name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Montag
            <span style="color: #009900;">&#91;</span>weekday<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #208080;">01</span><span style="color: #339933;">-</span><span style="color: #208080;">06</span>
            <span style="color: #009900;">&#91;</span>week<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #208080;">02</span>
            <span style="color: #009900;">&#91;</span>day_name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Dienstag
            <span style="color: #009900;">&#91;</span>weekday<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2</span>
        <span style="color: #009900;">&#41;</span>
&nbsp;
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">6</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span>
        <span style="color: #009900;">&#40;</span>
            <span style="color: #009900;">&#91;</span><span style="color: #990000;">date</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2009</span><span style="color: #339933;">-</span><span style="color: #208080;">01</span><span style="color: #339933;">-</span><span style="color: #208080;">07</span>
            <span style="color: #009900;">&#91;</span>week<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #208080;">02</span>
            <span style="color: #009900;">&#91;</span>day_name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Mittwoch
            <span style="color: #009900;">&#91;</span>weekday<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">3</span>
        <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.php-log.de/425/php/ein-array-mit-fortlaufenden-tage-eines-intervals-mit-zend_date/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Date in ein MySQL kompatibles Datum konvertieren</title>
		<link>http://www.php-log.de/378/php/zend_date-in-ein-mysql-kompatibles-datum-konvertieren</link>
		<comments>http://www.php-log.de/378/php/zend_date-in-ein-mysql-kompatibles-datum-konvertieren#comments</comments>
		<pubDate>Tue, 14 Jul 2009 15:58:47 +0000</pubDate>
		<dc:creator>ralle</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.php-log.de/?p=378</guid>
		<description><![CDATA[Zend_Date hat für alle erdenklichen Ausgabeformate eine Lösung. Nur für den Einsatz als MySQL Datum nicht. das muss man noch &#8216;händisch&#8217; einrichten. Die Lösung ist natürlich sehr einfach, aber da ich das Zend Framework nur gelegentlich benutze musste ich trotzdem danach googlen. Fündig wurde ich hier: http://www.eatmybusiness.com/food/2009/01/31/how-to-get-zend-date-in-sql-timestamp-format-eg-mysql-yyyy-mm-dd-hhmmss/90/ Hier die vereinfachte Zusammenfassung: $date = new Zend_Date&#40;&#41;; [...]]]></description>
			<content:encoded><![CDATA[<p>Zend_Date hat für alle erdenklichen Ausgabeformate eine Lösung. Nur für den Einsatz als MySQL Datum nicht. das muss man noch &#8216;händisch&#8217; einrichten.<span id="more-378"></span></p>
<p>Die Lösung ist natürlich sehr einfach, aber da ich das Zend Framework nur gelegentlich benutze musste ich trotzdem danach googlen. Fündig wurde ich hier: <a href="http://www.eatmybusiness.com/food/2009/01/31/how-to-get-zend-date-in-sql-timestamp-format-eg-mysql-yyyy-mm-dd-hhmmss/90/" target="_blank">http://www.eatmybusiness.com/food/2009/01/31/how-to-get-zend-date-in-sql-timestamp-format-eg-mysql-yyyy-mm-dd-hhmmss/90/</a> </p>
<p>Hier die vereinfachte Zusammenfassung:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$date</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$sql_date_pattern</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'yyyy-MM-dd HH:mm:ss'</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$date</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql_date_pattern</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Achja, dann gibt es auch noch eine kleine Falle wenn man mit ein Zend_Date Object, mit einem Datum aus einer MySQL DB initialisieren will. Wer das Datum nicht vorher mit <code>strtotime()</code> behandelt kann sich einen gut versteckten Fehler einfangen.:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$day</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;2009-10-11&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Falsch</span>
<span style="color: #000088;">$date</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Date<span style="color: #009900;">&#40;</span><span style="color: #000088;">$day</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$week</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$date</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span>Zend_Date<span style="color: #339933;">::</span><span style="color: #004000;">WEEK</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">#-&gt; Nov 10, 2009 12:00:00 AM
</span>
<span style="color: #666666; font-style: italic;">// Richtig</span>
<span style="color: #000088;">$date</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Zend_Date<span style="color: #009900;">&#40;</span><span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$day</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$week</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$date</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get</span><span style="color: #009900;">&#40;</span>Zend_Date<span style="color: #339933;">::</span><span style="color: #004000;">WEEK</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">#-&gt; Oct 11, 2009 12:00:00 AM</span></pre></div></div>

<p>Kurioserweise tritt dieses Phänomen bei mir nur dann auf, wenn ich das Script via CLI auf der Shell aufrufe.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.php-log.de/378/php/zend_date-in-ein-mysql-kompatibles-datum-konvertieren/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

