suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Konvertieren Sie gregorianische Daten in Sonnendaten in WordPress und WooCommerce

<p>Ich habe eine Vorlage für meine Website entworfen und möchte, dass alle <strong>WooCommerce</strong>-Daten in den gregorianischen Kalender umgewandelt werden der gregorianische Kalender. </p> <p>Ich verwende den folgenden <strong>Shortcode</strong> um das Datum anzuzeigen, an dem meine Beiträge veröffentlicht wurden: </p> <pre class="brush:php;toolbar:false;"><?php the_time('Y/m/d' ?></pre> <p>Aber das angezeigte Datum ist im gregorianischen Kalender und ich möchte es in Shamsi ändern. </p> <p>Ich weiß, dass es viele Plugins gibt, um dies zu erreichen, aber ich möchte meiner Vorlage etwas Code hinzufügen, damit meine Standardvorlage immer ein Sonnendatum ist. </p> <p>Ich benötige Hilfe bei der Verwendung dieser Funktion. </p> <p>Vielen Dank. </p> <hr /> <p><strong>Herausgeber:</strong></p> <p>Ich habe alle diese Codes schon einmal ausprobiert, aber keiner davon hat das Datum in WordPress für mich geändert. </p> <p><strong>Ich suche einen Code, der alle WordPress-Daten konvertiert oder zumindest anzeigt, indem er in die Datei <strong><code>functions.php</code> eingefügt wird Solarvorlage. </strong></p> <p>HijriCalendar.class.php</p> <p>Persischer Kalender</p> <hr /> <p><strong>Bearbeiten 2:</strong></p> <p>Ich habe in der Vorlage die Bibliothek moment.js und auch die Methode <strong>javascript</strong> verwendet, aber es funktioniert immer noch nicht. </p> <p>Wie ändere ich das gregorianische Datum in JavaScript in ein persisches Datum? </p> <p>Gregorianisches Datum in persisches (Jalali) Datum in Angular 2 und Ionic 2 umwandeln</p>
P粉662361740P粉662361740457 Tage vor667

Antworte allen(1)Ich werde antworten

  • P粉752812853

    P粉7528128532023-09-04 13:15:59

    我认为首先您使用 get_the_time 函数来获取日期,然后将其转换为 shamsi 日期并回显它以显示。 像下面这样的代码工作。您可以添加任何您想要的其他 g2p 功能。

    add_filter('the_time', 'change_date_format');
    
    function change_date_format(){
        //change date language here
        $date = get_the_time('Y/m/d');
        $date = explode('/', $date);
        $farsi_date = g2p($date[0],$date[1],$date[2]);
        return $farsi_date[0].'/'.$farsi_date[1].'/'.$farsi_date[2];
    }
    
    function g2p($g_y, $g_m, $g_d)
    {
        $g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
        $j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);
    
        $gy = $g_y-1600;
        $gm = $g_m-1;
        $gd = $g_d-1;
    
        $g_day_no = 365*$gy+floor(($gy+3)/4)-floor(($gy+99)/100)+floor(($gy+399)/400);
    
        for ($i=0; $i < $gm; ++$i){
            $g_day_no += $g_days_in_month[$i];
        }
    
        if ($gm>1 && (($gy%4==0 && $gy%100!=0) || ($gy%400==0))){
            /* leap and after Feb */
            ++$g_day_no;
        }
    
        $g_day_no += $gd;
        $j_day_no = $g_day_no-79;
        $j_np = floor($j_day_no/12053);
        $j_day_no %= 12053;
        $jy = 979+33*$j_np+4*floor($j_day_no/1461);
        $j_day_no %= 1461;
    
        if ($j_day_no >= 366) {
            $jy += floor(($j_day_no-1)/365);
            $j_day_no = ($j_day_no-1)%365;
        }
        $j_all_days = $j_day_no+1;
    
        for ($i = 0; $i < 11 && $j_day_no >= $j_days_in_month[$i]; ++$i) {
            $j_day_no -= $j_days_in_month[$i];
        }
    
        $jm = $i+1;
        $jd = $j_day_no+1;
    
        return array($jy, $jm, $jd, $j_all_days);
    }

    Antwort
    0
  • StornierenAntwort