Quiero que los números de fecha se conviertan en números persas, lo intenté, convierte todos los números en la página excepto la fecha
Aquí está mi demostración de código https://jsfiddle.net/dpcu2o57/16/
/* Counter */ var countDownDate = new Date("Dec 5, 2022 15:37:25").getTime(); var x = setInterval(function() { var now = new Date().getTime(); var distance = countDownDate - now; var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); document.getElementById("demo").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s "; if (distance < 0) { clearInterval(x); document.getElementById("demo").innerHTML = "EXPIRED"; } }, 1000); /*English Number to Persian */ function walkNode(node) { if (node.nodeType == 3) { node.data = node.data.replace(/\d/g, convert) } for (var i = 0; i < node.childNodes.length; i++) { walkNode(node.childNodes[i]) } } walkNode(document.getElementsByTagName('body')[0]) function convert(a) { return ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'][a] } <p id="demo"></p> <h4>1234567</h4>Está usando un temporizador de intervalos para actualizar el texto con los dígitos predeterminados, pero luego no está llamando a walkNode para convertirlos a persa.
Podría agregar una llamada a walkNode para hacer eso, pero yo no lo haría; en cambio, convertiría la cadena antes de agregarla al DOM:
document.getElementById("demo").innerHTML = convertString(days + "d " + hours + "h " + minutes + "m " + seconds + "s "); ... donde convertString es:
function convertString(str) { return str.replace(/\d/g, convert); } ... y actualizaría walkNode para usar convertString en lugar de un reemplazo en línea.
Ejemplo en vivo:
/* Counter */ var countDownDate = new Date("Dec 5, 2022 15:37:25").getTime(); var x = setInterval(function() { var now = new Date().getTime(); var distance = countDownDate - now; var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); document.getElementById("demo").innerHTML = convertString(days + "d " + hours + "h " + minutes + "m " + seconds + "s "); if (distance < 0) { clearInterval(x); document.getElementById("demo").innerHTML = "EXPIRED"; } }, 1000); /*English Number to Persian */ function walkNode(node) { if (node.nodeType == 3) { node.data = convertString(node.data); } for (var i = 0; i < node.childNodes.length; i++) { walkNode(node.childNodes[i]) } } walkNode(document.getElementsByTagName('body')[0]) function convert(a) { return ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'][a] } function convertString(str) { return str.replace(/\d/g, convert); } <p id="demo"></p> <h4>1234567</h4>