Convertir les dates grégoriennes en dates solaires dans WordPress et WooCommerce
P粉662361740
P粉662361740 2023-09-03 16:27:14
0
1
689
<p>J'ai conçu un modèle pour mon site Web et j'aimerais que toutes les dates <strong>WordPress</strong> et <strong>WooCommerce</strong> du modèle soient converties du calendrier grégorien en le calendrier grégorien. </p> <p>J'utilise le <strong>shortcode</strong> suivant pour afficher la date de publication de mes articles : </p> <pre class="brush:php;toolbar:false;"><?php the_time('Y/m/d'); <p>Mais la date affichée est dans le calendrier grégorien et je souhaite la changer en Shamsi. </p> <p>Je sais qu'il existe de nombreux plugins pour y parvenir, mais je souhaite ajouter du code à mon modèle afin que mon modèle par défaut soit toujours une date au soleil. </p> <p>J'ai besoin d'aide pour utiliser cette fonctionnalité. </p> <p>Merci beaucoup. </p> <heure /> <p><strong>Éditeur :</strong></p> <p>J'ai déjà essayé tous ces codes, mais aucun d'entre eux n'a modifié la date dans WordPress pour moi. </p> <p><strong>Je recherche un code qui convertira toutes les dates WordPress ou au moins les affichera en le mettant dans le fichier <strong><code>functions.php</code> modèle solaire. </strong></p> <p>HijriCalendar.class.php</p> <p>Calendrier persan</p> <heure /> <p><strong>Modifier 2 :</strong></p> <p>J'ai utilisé la bibliothèque moment.js dans le modèle et j'ai également utilisé la méthode <strong>javascript</strong> mais cela ne fonctionne toujours pas. </p> <p>Comment changer la date grégorienne en date persane en JavaScript ? </p> <p>Convertir la date grégorienne en date persane (Jalali) dans Angular 2 et Ionic 2</p>
P粉662361740
P粉662361740

répondre à tous(1)
P粉752812853

Je pense que vous utilisez d'abord la fonction get_the_time pour obtenir la date, puis la convertissez en date shamsi et faites-la écho pour l'affichage. Le code comme ci-dessous fonctionne. Vous pouvez ajouter toute autre fonctionnalité g2p de votre choix.

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);
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal