如何将Date对象转换为这样的字符串:“ 20140127T224000Z”
我有日期对象selectedTime
当我selectedTime.toISOString()
得到
“ 2018-10-18T16:00:00.000Z”
然后,我应用替换功能:
var date = selectedTime.toISOString().replace('-','').replace(':','').replace('.','');
但是由于某种原因它不起作用,返回
我尝试添加mo replace函数,但是由于某些原因,我仍然得到相同的结果,未删除“-”或“:”
使用正则表达式也不起作用
这是打字稿中的代码段:
onTimeSelected(selectedTime: Date, events) {
var date = selectedTime.toISOString().replace('-','').replace('-','').replace(':','').replace(':','').replace('.','');
var redirectTo = 'https://calendar.google.com/calendar/r/eventedit?dates=' + date + '/' + date;
window.open(redirectTo, '_blank');
}
好的,我会保持简单,您如何解释这一点:
答案 0 :(得分:3)
如果为String#replace
提供String
作为其第一个参数,则只会替换第一个出现的事件。
您需要传递带有 g lob标志的正则表达式:
var date = selectedTime.toISOString().replace(/[-:.]/g,'');
答案 1 :(得分:1)
使用
var date = selectedTime.toISOString().replace(/[-:.]/g,'');
相反。如果需要,可以添加此定义,然后使用它:
String.prototype.replaceAll = function (oldValue, newValue) {
// see https://stackoverflow.com/a/6969486/2307070
var sanitizedOldValue = oldValue.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
return this.replace(new RegExp(sanitizedOldValue, 'g'), newValue);
}
var date = new Date().toISOString().replaceAll('-','').replaceAll('.','').replaceAll(':','');
console.log(date);