Удалить GMT - #### текст из даты в JavaScript?

Я хотел бы удалить текст "GMT - ####" из результатов. Результаты по дате / времени будут отличаться в зависимости от критериев поиска, введенных пользователем.

    for (var j = 0; j < resultCountGLM; j++) {

            var featureAttributes2 = results[1].features[j].attributes;
            //console.log(featureAttributes2)

            if (attr = "DATE_UTC") {
                attr1 = "Detected during the 1-hour period beginning"
                var dateGM = new Date(featureAttributes2[attr]);
                resultItems.push("<p class='reportTextResults_font'><b>" + attr1 + ":</b>  " + dateGM + "</p>");
            }
        }
        resultItems.push("<br>");

Пример вывода:

    Detected during the 1-hour period beginning: Thu Jan 02 2020 14:00:00 GMT-0600 (Central Standard Time)
    Detected during the 1-hour period beginning: Thu Jan 02 2020 16:00:00 GMT-0600 (Central Standard Time)

Желаемый результат:

    Detected during the 1-hour period beginning: Thu Jan 02 2020 14:00:00 (Central Standard Time)
    Detected during the 1-hour period beginning: Thu Jan 02 2020 16:00:00 (Central Standard Time)

Всего 4 ответа


Если вы хотите использовать ванильный JavaScript, у вас есть два варианта. Либо удалите его самостоятельно, либо посмотрите на одну из функций .toXXX . Пример:

new Date().toLocaleString()
//"1/14/2020, 1:05:58 PM"

Если вам нужно, чтобы это было именно так или потенциально более детализировано, есть множество библиотек, которые помогают с форматированием дат.


Я пошел со следующим ниже. Текст GMT всегда будет состоять из 8 символов.

    var dateGM = new Date(featureAttributes2[attr]);
    var stringGM = dateGM.toString();
    var n = stringGM.indexOf("GMT")
    var dateGMfinal = stringGM.replace(stringGM.substring(n,n+8)," ")

Вы можете использовать его таким образом, если вам нужна только дата, а я даю другой вариант, потому что местное время может повлиять на результаты.

<!DOCTYPE html>
<html>
<body>


 <p id="demo4"></p>
<p id="demo5"></p>
<p id="demo"></p>
<p id="demo1"></p>
<p id="demo2"></p>
<p id="demo3"></p>
   
<script>
var dateGM = new Date('Thu Jan 02 2020 14:00:00 GMT-0600');
var pre='GMT'

var date = dateGM.toString().slice(0, dateGM.toString().lastIndexOf(pre));

var myDate = new Date(date);
    var    dateString=dateGM.toISOString().split('t')[0];
 var dateString1=dateGM.toISOString();

 var dateString2=dateGM.toISOString().split('T')[0];
 var dateString3=dateGM.toISOString().split('.')[0]    
 var dateStringnew  =dateGM.toDateString('YYYY-MM-DD HH:mm:ss')+" "+dateGM.toLocaleTimeString('it-IT');   
//console.log(dateStringnew);
document.getElementById("demo").innerHTML = dateString;
document.getElementById("demo1").innerHTML = dateString1;
document.getElementById("demo2").innerHTML = dateString2;
document.getElementById("demo3").innerHTML = dateString3;
document.getElementById("demo4").innerHTML = date;
document.getElementById("demo5").innerHTML = dateStringnew;
</script>

</body>
</html>

Ваш код может быть

 for (var j = 0; j < resultCountGLM; j++) {

            var featureAttributes2 = results[1].features[j].attributes;
            //console.log(featureAttributes2)

            if (attr = "DATE_UTC") {
                attr1 = "Detected during the 1-hour period beginning"
                var dateGM = new Date(featureAttributes2[attr]);
                 var pre='GMT'

             var date = 
        dateGM.toString().slice(0,dateGM.toString().lastIndexOf(pre));
                resultItems.push("<p class='reportTextResults_font'><b>" + attr1 + ":</b>  " + date + "</p>");
            }
        }
        resultItems.push("<br>");

let dateGM = new Date(featureAttributes2[attr]).toString().split(" ");
dateGM.splice(5,1) //remove GMT-####
dateGM.join(" ");
resultItems.push("<p class='reportTextResults_font'><b>" + attr1 + ":</b>  " + dateGM + "</p>");


Есть идеи?

10000